Military Power Clustering Project¶

Military Power Caption: by Author

PREFACE¶

Welcome to "Military Power Clustering Project". In this project, we employ machine learning clustering techniques to analyze and categorize countries based on their Military Strength Power Index. By evaluating various military, financial, logistical,natural resources, man power and geographical parameters, we aim to uncover patterns in global defense capabilities and provide insights into military power distribution.

Unsupervised Learning Method

Unsupervised learning is a machine learning approach where algorithms analyze data without labeled outputs, allowing them to detect hidden patterns and structures within datasets. Unlike supervised learning, which relies on predefined categories, unsupervised methods explore intrinsic relationships in data and group similar entities based on shared characteristics.

Clustering in Military Strength Analysis

In your project, clustering is an unsupervised technique that categorizes countries based on their Military Strength Power Index. Instead of predefined classes, the model finds natural groupings among nations by analyzing military, financial, logistical, and geographical metrics.

Key aspects of unsupervised clustering:

  • Pattern Discovery: Identifies clusters of countries with similar defense capabilities without explicit labeling.
  • Dimensional Reduction: Helps simplify complex, high-dimensional military data while preserving key relationships.
  • Similarity Metrics: Uses techniques like Euclidean distance, cosine similarity, or Mahalanobis distance to determine how closely countries resemble one another.

Common clustering algorithms that could be applied in your analysis include:

  • K-Means: Groups countries into k clusters based on their military power similarity.
  • Hierarchical Clustering: Creates a tree structure showing hierarchical relationships between nations.

NOTE: This project assumes that you already know the basics of coding in Python and are familiar with model deployement as well as the theory behind Clustering. You can try more models and methods beside these to improve your model metrics.

Roadmap For The Data¶

First of all, to observe the structure of the data, missing values and features that affect the clustering, you must use exploratory data analysis and data visualization techniques.

The purpose of clustering analysis is to cluster data with similar characteristics. You are asked to use the K-means and hierarchical algorithms to make cluster analysis. Also, the data you apply to the K-means algorithm must be scaled. In order to find the optimal number of clusters, you are asked to use the Elbow and silhouette analysis methods.

TASKS¶

Exploratory Data Analysis

  • Loading Dataset
  • Data Insights
  • Data Visualization
  • Dealing with Missing Values

Data Pre-Processing

  • Scaling

Cluster Analysis

  • Find the optimal number of clusters (k) using the elbow method for for K-means and hierarchical analysis.
  • Determine the clusters by using K-Means and hierarchical analysis.

DATA SET¶

The data set is on https://data.world/vizzup/world-military-power/workspace/file?filename=World+military+power.xlsx The data set has 138 samples. Explanation of Key Metrics:

  • Military Strength Power Index: A composite metric representing a country's overall military capability based on various defense-related indicators.
  • Airforce Strength: Evaluates air power through different aircraft types, including fighter jets, attack aircraft, transport planes, trainer aircraft, helicopters, and attack helicopters.
  • Land Strength: Measures ground force power via tanks, armored fighting vehicles (AFVs/APCs), self-propelled artillery, towed artillery, and rocket projector systems.
  • Navy Strength: Assesses maritime capabilities, including overall naval fleet strength, aircraft carriers, submarines, destroyers, and frigates.
  • Finances: Examines economic factors such as defense spending and external debt to assess a nation's financial capacity for sustaining military operations.
  • Logistics: Evaluates infrastructure availability, such as airport totals, which impact a country's ability to mobilize resources.
  • Natural Resources: Considers oil-related factors—production, consumption, and proven reserves—which influence a country’s ability to fuel military operations.
  • Manpower: Quantifies human resources via available manpower and total population, crucial for maintaining a robust defense force.
  • Geography: Assesses territorial attributes, including land area, coastline coverage, waterway availability, and border length, which influence strategic military advantages.

Import Libraries¶

In [1]:
#pip install openpyxl
In [2]:
# importing libraries for data handling and analysis
import pandas as pd
pd.set_option('display.max_columns', 200)
pd.set_option('display.max_rows', 150)
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

# importing libraries for warnings
import warnings
from sklearn.exceptions import ConvergenceWarning
warnings.filterwarnings("ignore", category=UserWarning, module="sklearn.cluster._kmeans")
warnings.filterwarnings("ignore", category=DeprecationWarning)
warnings.filterwarnings("ignore", category=FutureWarning)
warnings.filterwarnings("ignore", message="The figure layout has changed to tight", category=UserWarning)
import os
os.environ["OMP_NUM_THREADS"] = "1"

# importing libraries for data visualisations
import plotly
import plotly.express as px
import plotly.figure_factory as ff
import plotly.graph_objects as go
%matplotlib inline

# sklearn modules for preprocessing and clustering
from sklearn.preprocessing import StandardScaler, RobustScaler,MinMaxScaler
from sklearn.cluster import KMeans
from pyclustertend import hopkins
from yellowbrick.cluster import KElbowVisualizer
from sklearn.metrics import silhouette_score
from scipy.cluster.hierarchy import dendrogram, linkage
from sklearn.cluster import AgglomerativeClustering

Ingest Data¶

In [3]:
df = pd.read_excel("World military power.xlsx",header=[0,1]) # because of multyindex.
df.head()
# the smaller the power index, the more powerful a nation's conventional fighting capabilities.
Out[3]:
2020 ranking Airforce Strength Land Strength Navy Strength Finances Logistics Natural resources Manpower Geography
Military Strength Military Strength Power Index Aircraft Strength Aircraft Strength value Fighter/Interceptor Strength Fighter/Interceptor Strength value Attack Aircraft Strength Attack Aircraft Strength value Transport Aircraft Fleet Strength Transport Aircraft Fleet Strength value Trainer Aircraft Fleet Trainer Aircraft Fleet value Helicopter Fleet Strength Helicopter Fleet Strength value Attack Helicopter Fleet Strength Attack Helicopter Fleet Strength value Tank Strength Tank Strength value AFV/APC Strength AFV/APC Strength value Self-Propelled Artillery Strength Self-Propelled Artillery Strength value Towed Artillery Strength Towed Artillery Strength value Rocket Projector Strength Rocket Projector Strength value Navy Fleet Strengths Navy Fleet Strengths value Aircraft Carrier Fleet Strength Aircraft Carrier Fleet Strength value Submarine Fleet Strength Submarine Fleet Strength value Destroyer Fleet Strength Destroyer Fleet Strength value Frigate Fleet Strength Frigate Fleet Strength value defense spending budget defense spending budget value External Debt External Debt value Airport Totals Airport Totals value Oil Production Oil Production value Oil Consumption Oil Consumption value Proven Oil Reserves Proven Oil Reserves value Available Manpower Available Manpower value Total Population Total Population value Total Square Land Area Total Square Land Area value Total Coastline Coverage Total Coastline Coverage value Total Waterway Coverage Total Waterway Coverage value Total Border Coverage Total Border Coverage value
0 Afghanistan 1.3444 Afghanistan 260 Afghanistan 0 Afghanistan 25 Afghanistan 30 Afghanistan 0 Afghanistan 187 Afghanistan 0 Afghanistan 0 Afghanistan 1062 Afghanistan 0 Afghanistan 176 Afghanistan 50 Afghanistan 0.0 Afghanistan 0.0 Afghanistan 0.0 Afghanistan 0.0 Afghanistan 0.0 Afghanistan 12,00,00,00,000 Afghanistan 2,84,00,00,000 Afghanistan 43 Afghanistan 0 Afghanistan 5500 Afghanistan 0 Afghanistan 1,43,25,743 Afghanistan 3,49,40,837 Afghanistan 6,52,230 Afghanistan 0 Afghanistan 1200 Afghanistan 5987.0
1 Albania 2.3137 Albania 19 Albania 0 Albania 0 Albania 0 Albania 0 Albania 19 Albania 0 Albania 0 Albania 467 Albania 0 Albania 0 Albania 0 Albania 38.0 Albania 0.0 Albania 0.0 Albania 0.0 Albania 0.0 Albania 25,00,00,000 Albania 9,50,50,00,000 Albania 4 Albania 16000 Albania 42500 Albania 16,83,00,000 Albania 15,19,438 Albania 30,57,220 Albania 28748 Albania 362 Albania 41 Albania 691.0
2 Algeria 0.4659 Algeria 551 Algeria 103 Algeria 22 Algeria 59 Algeria 87 Algeria 257 Algeria 45 Algeria 880 Algeria 7361 Algeria 320 Algeria 240 Algeria 316 Algeria 201.0 Algeria 0.0 Algeria 6.0 Algeria 0.0 Algeria 5.0 Algeria 13,00,00,00,000 Algeria 6,26,00,00,000 Algeria 157 Algeria 13,06,000 Algeria 3,25,000 Algeria 12,20,00,00,000 Algeria 2,07,41,263 Algeria 4,16,57,488 Algeria 23,81,741 Algeria 998 Algeria 0 Algeria 6734.0
3 Angola 0.8379 Angola 295 Angola 72 Angola 18 Angola 30 Angola 47 Angola 126 Angola 15 Angola 379 Angola 595 Angola 28 Angola 357 Angola 115 Angola 57.0 Angola 0.0 Angola 0.0 Angola 0.0 Angola 0.0 Angola 7,00,00,00,000 Angola 42,08,00,00,000 Angola 176 Angola 16,66,000 Angola 82300 Angola 8,27,30,00,000 Angola 62,44,205 Angola 3,03,55,880 Angola 12,46,700 Angola 1600 Angola 1300 Angola 5369.0
4 Argentina 0.6521 Argentina 227 Argentina 24 Argentina 7 Argentina 9 Argentina 64 Argentina 100 Argentina 0 Argentina 370 Argentina 739 Argentina 83 Argentina 172 Argentina 26 Argentina 49.0 Argentina 0.0 Argentina 2.0 Argentina 4.0 Argentina 0.0 Argentina 4,20,00,00,000 Argentina 2,14,90,00,00,000 Argentina 1138 Argentina 4,79,400 Argentina 6,85,000 Argentina 2,18,50,00,000 Argentina 2,01,79,430 Argentina 4,46,94,198 Argentina 27,80,400 Argentina 4989 Argentina 11000 Argentina 11968.0

EDA¶

Implement basic steps to see how is your data looks like¶

In [4]:
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 138 entries, 0 to 137
Data columns (total 60 columns):
 #   Column                                                        Non-Null Count  Dtype  
---  ------                                                        --------------  -----  
 0   (2020 ranking, Military Strength)                             138 non-null    object 
 1   (2020 ranking, Military Strength Power Index)                 138 non-null    float64
 2   (Airforce Strength, Aircraft Strength)                        138 non-null    object 
 3   (Airforce Strength, Aircraft Strength value)                  138 non-null    int64  
 4   (Airforce Strength, Fighter/Interceptor Strength)             138 non-null    object 
 5   (Airforce Strength, Fighter/Interceptor Strength value)       138 non-null    int64  
 6   (Airforce Strength, Attack Aircraft Strength)                 138 non-null    object 
 7   (Airforce Strength, Attack Aircraft Strength value)           138 non-null    int64  
 8   (Airforce Strength, Transport Aircraft Fleet Strength)        138 non-null    object 
 9   (Airforce Strength, Transport Aircraft Fleet Strength value)  138 non-null    int64  
 10  (Airforce Strength, Trainer Aircraft Fleet)                   138 non-null    object 
 11  (Airforce Strength, Trainer Aircraft Fleet value)             138 non-null    int64  
 12  (Airforce Strength, Helicopter Fleet Strength)                138 non-null    object 
 13  (Airforce Strength, Helicopter Fleet Strength value)          138 non-null    int64  
 14  (Airforce Strength, Attack Helicopter Fleet Strength)         138 non-null    object 
 15  (Airforce Strength, Attack Helicopter Fleet Strength value)   138 non-null    int64  
 16  (Land Strength, Tank Strength)                                138 non-null    object 
 17  (Land Strength, Tank Strength value)                          138 non-null    int64  
 18  (Land Strength, AFV/APC Strength)                             138 non-null    object 
 19  (Land Strength, AFV/APC Strength value)                       138 non-null    int64  
 20  (Land Strength, Self-Propelled Artillery Strength)            138 non-null    object 
 21  (Land Strength, Self-Propelled Artillery Strength value)      138 non-null    int64  
 22  (Land Strength, Towed Artillery Strength)                     138 non-null    object 
 23  (Land Strength, Towed Artillery Strength value)               138 non-null    int64  
 24  (Land Strength, Rocket Projector Strength)                    138 non-null    object 
 25  (Land Strength, Rocket Projector Strength value)              138 non-null    int64  
 26  (Navy Strength, Navy Fleet Strengths)                         124 non-null    object 
 27  (Navy Strength, Navy Fleet Strengths value)                   124 non-null    float64
 28  (Navy Strength, Aircraft Carrier Fleet Strength)              115 non-null    object 
 29  (Navy Strength, Aircraft Carrier Fleet Strength value)        115 non-null    float64
 30  (Navy Strength, Submarine Fleet Strength)                     115 non-null    object 
 31  (Navy Strength, Submarine Fleet Strength value)               115 non-null    float64
 32  (Navy Strength, Destroyer Fleet Strength)                     115 non-null    object 
 33  (Navy Strength, Destroyer Fleet Strength value)               115 non-null    float64
 34  (Navy Strength, Frigate Fleet Strength)                       115 non-null    object 
 35  (Navy Strength, Frigate Fleet Strength value)                 115 non-null    float64
 36  (Finances, defense spending budget)                           138 non-null    object 
 37  (Finances, defense spending budget value)                     138 non-null    object 
 38  (Finances, External Debt)                                     138 non-null    object 
 39  (Finances, External Debt value)                               138 non-null    object 
 40  (Logistics, Airport Totals)                                   138 non-null    object 
 41  (Logistics, Airport Totals value)                             138 non-null    int64  
 42  (Natural resources, Oil Production)                           138 non-null    object 
 43  (Natural resources, Oil Production value)                     138 non-null    object 
 44  (Natural resources, Oil Consumption)                          138 non-null    object 
 45  (Natural resources, Oil Consumption value)                    138 non-null    object 
 46  (Natural resources, Proven Oil Reserves)                      138 non-null    object 
 47  (Natural resources, Proven Oil Reserves value)                138 non-null    object 
 48  (Manpower, Available Manpower)                                138 non-null    object 
 49  (Manpower, Available Manpower value)                          138 non-null    object 
 50  (Manpower, Total Population)                                  138 non-null    object 
 51  (Manpower, Total Population value)                            138 non-null    object 
 52  (Geography, Total Square Land Area)                           138 non-null    object 
 53  (Geography, Total Square Land Area value)                     138 non-null    object 
 54  (Geography, Total Coastline Coverage)                         109 non-null    object 
 55  (Geography, Total Coastline Coverage value)                   109 non-null    object 
 56  (Geography, Total Waterway Coverage)                          138 non-null    object 
 57  (Geography, Total Waterway Coverage value)                    138 non-null    object 
 58  (Geography, Total Border Coverage)                            129 non-null    object 
 59  (Geography, Total Border Coverage value)                      129 non-null    float64
dtypes: float64(7), int64(13), object(40)
memory usage: 64.8+ KB
In [5]:
df.shape
Out[5]:
(138, 60)
In [6]:
df.duplicated().sum()
Out[6]:
0
In [7]:
df.isna().sum().any()
Out[7]:
True

Convert multi index columns to one level¶

In [8]:
df.columns # Due to the MultiIndex structure, the column headers appear as tuples.
Out[8]:
MultiIndex([(     '2020 ranking',                       'Military Strength'),
            (     '2020 ranking',           'Military Strength Power Index'),
            ('Airforce Strength',                       'Aircraft Strength'),
            ('Airforce Strength',                 'Aircraft Strength value'),
            ('Airforce Strength',            'Fighter/Interceptor Strength'),
            ('Airforce Strength',      'Fighter/Interceptor Strength value'),
            ('Airforce Strength',                'Attack Aircraft Strength'),
            ('Airforce Strength',          'Attack Aircraft Strength value'),
            ('Airforce Strength',       'Transport Aircraft Fleet Strength'),
            ('Airforce Strength', 'Transport Aircraft Fleet Strength value'),
            ('Airforce Strength',                  'Trainer Aircraft Fleet'),
            ('Airforce Strength',            'Trainer Aircraft Fleet value'),
            ('Airforce Strength',               'Helicopter Fleet Strength'),
            ('Airforce Strength',         'Helicopter Fleet Strength value'),
            ('Airforce Strength',        'Attack Helicopter Fleet Strength'),
            ('Airforce Strength',  'Attack Helicopter Fleet Strength value'),
            (    'Land Strength',                           'Tank Strength'),
            (    'Land Strength',                     'Tank Strength value'),
            (    'Land Strength',                        'AFV/APC Strength'),
            (    'Land Strength',                  'AFV/APC Strength value'),
            (    'Land Strength',       'Self-Propelled Artillery Strength'),
            (    'Land Strength', 'Self-Propelled Artillery Strength value'),
            (    'Land Strength',                'Towed Artillery Strength'),
            (    'Land Strength',          'Towed Artillery Strength value'),
            (    'Land Strength',               'Rocket Projector Strength'),
            (    'Land Strength',         'Rocket Projector Strength value'),
            (    'Navy Strength',                    'Navy Fleet Strengths'),
            (    'Navy Strength',              'Navy Fleet Strengths value'),
            (    'Navy Strength',         'Aircraft Carrier Fleet Strength'),
            (    'Navy Strength',   'Aircraft Carrier Fleet Strength value'),
            (    'Navy Strength',                'Submarine Fleet Strength'),
            (    'Navy Strength',          'Submarine Fleet Strength value'),
            (    'Navy Strength',                'Destroyer Fleet Strength'),
            (    'Navy Strength',          'Destroyer Fleet Strength value'),
            (    'Navy Strength',                  'Frigate Fleet Strength'),
            (    'Navy Strength',            'Frigate Fleet Strength value'),
            (         'Finances',                 'defense spending budget'),
            (         'Finances',           'defense spending budget value'),
            (         'Finances',                           'External Debt'),
            (         'Finances',                     'External Debt value'),
            (        'Logistics',                          'Airport Totals'),
            (        'Logistics',                    'Airport Totals value'),
            ('Natural resources',                          'Oil Production'),
            ('Natural resources',                    'Oil Production value'),
            ('Natural resources',                         'Oil Consumption'),
            ('Natural resources',                   'Oil Consumption value'),
            ('Natural resources',                     'Proven Oil Reserves'),
            ('Natural resources',               'Proven Oil Reserves value'),
            (         'Manpower',                      'Available Manpower'),
            (         'Manpower',                'Available Manpower value'),
            (         'Manpower',                        'Total Population'),
            (         'Manpower',                  'Total Population value'),
            (        'Geography',                  'Total Square Land Area'),
            (        'Geography',            'Total Square Land Area value'),
            (        'Geography',                'Total Coastline Coverage'),
            (        'Geography',          'Total Coastline Coverage value'),
            (        'Geography',                 'Total Waterway Coverage'),
            (        'Geography',           'Total Waterway Coverage value'),
            (        'Geography',                   'Total Border Coverage'),
            (        'Geography',             'Total Border Coverage value')],
           )
In [9]:
# To convert each level of the tuple to a string for iterating through the MultiIndex column headers.
df.columns = ['_'.join(tuple(map(str, t))) for t in df.columns.values]
In [10]:
df.columns 
Out[10]:
Index(['2020 ranking_Military Strength',
       '2020 ranking_Military Strength Power Index',
       'Airforce Strength_Aircraft Strength',
       'Airforce Strength_Aircraft Strength value',
       'Airforce Strength_Fighter/Interceptor Strength',
       'Airforce Strength_Fighter/Interceptor Strength value',
       'Airforce Strength_Attack Aircraft Strength',
       'Airforce Strength_Attack Aircraft Strength value',
       'Airforce Strength_Transport Aircraft Fleet Strength',
       'Airforce Strength_Transport Aircraft Fleet Strength value',
       'Airforce Strength_Trainer Aircraft Fleet',
       'Airforce Strength_Trainer Aircraft Fleet value',
       'Airforce Strength_Helicopter Fleet Strength',
       'Airforce Strength_Helicopter Fleet Strength value',
       'Airforce Strength_Attack Helicopter Fleet Strength',
       'Airforce Strength_Attack Helicopter Fleet Strength value',
       'Land Strength_Tank Strength', 'Land Strength_Tank Strength value',
       'Land Strength_AFV/APC Strength',
       'Land Strength_AFV/APC Strength value',
       'Land Strength_Self-Propelled Artillery Strength',
       'Land Strength_Self-Propelled Artillery Strength value',
       'Land Strength_Towed Artillery Strength',
       'Land Strength_Towed Artillery Strength value',
       'Land Strength_Rocket Projector Strength',
       'Land Strength_Rocket Projector Strength value',
       'Navy Strength_Navy Fleet Strengths',
       'Navy Strength_Navy Fleet Strengths value',
       'Navy Strength_Aircraft Carrier Fleet Strength',
       'Navy Strength_Aircraft Carrier Fleet Strength value',
       'Navy Strength_Submarine Fleet Strength',
       'Navy Strength_Submarine Fleet Strength value',
       'Navy Strength_Destroyer Fleet Strength',
       'Navy Strength_Destroyer Fleet Strength value',
       'Navy Strength_Frigate Fleet Strength',
       'Navy Strength_Frigate Fleet Strength value',
       'Finances_defense spending budget',
       'Finances_defense spending budget value', 'Finances_External Debt',
       'Finances_External Debt value', 'Logistics_Airport Totals',
       'Logistics_Airport Totals value', 'Natural resources_Oil Production',
       'Natural resources_Oil Production value',
       'Natural resources_Oil Consumption',
       'Natural resources_Oil Consumption value',
       'Natural resources_Proven Oil Reserves',
       'Natural resources_Proven Oil Reserves value',
       'Manpower_Available Manpower', 'Manpower_Available Manpower value',
       'Manpower_Total Population', 'Manpower_Total Population value',
       'Geography_Total Square Land Area',
       'Geography_Total Square Land Area value',
       'Geography_Total Coastline Coverage',
       'Geography_Total Coastline Coverage value',
       'Geography_Total Waterway Coverage',
       'Geography_Total Waterway Coverage value',
       'Geography_Total Border Coverage',
       'Geography_Total Border Coverage value'],
      dtype='object')
In [11]:
df.head()
Out[11]:
2020 ranking_Military Strength 2020 ranking_Military Strength Power Index Airforce Strength_Aircraft Strength Airforce Strength_Aircraft Strength value Airforce Strength_Fighter/Interceptor Strength Airforce Strength_Fighter/Interceptor Strength value Airforce Strength_Attack Aircraft Strength Airforce Strength_Attack Aircraft Strength value Airforce Strength_Transport Aircraft Fleet Strength Airforce Strength_Transport Aircraft Fleet Strength value Airforce Strength_Trainer Aircraft Fleet Airforce Strength_Trainer Aircraft Fleet value Airforce Strength_Helicopter Fleet Strength Airforce Strength_Helicopter Fleet Strength value Airforce Strength_Attack Helicopter Fleet Strength Airforce Strength_Attack Helicopter Fleet Strength value Land Strength_Tank Strength Land Strength_Tank Strength value Land Strength_AFV/APC Strength Land Strength_AFV/APC Strength value Land Strength_Self-Propelled Artillery Strength Land Strength_Self-Propelled Artillery Strength value Land Strength_Towed Artillery Strength Land Strength_Towed Artillery Strength value Land Strength_Rocket Projector Strength Land Strength_Rocket Projector Strength value Navy Strength_Navy Fleet Strengths Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength Navy Strength_Frigate Fleet Strength value Finances_defense spending budget Finances_defense spending budget value Finances_External Debt Finances_External Debt value Logistics_Airport Totals Logistics_Airport Totals value Natural resources_Oil Production Natural resources_Oil Production value Natural resources_Oil Consumption Natural resources_Oil Consumption value Natural resources_Proven Oil Reserves Natural resources_Proven Oil Reserves value Manpower_Available Manpower Manpower_Available Manpower value Manpower_Total Population Manpower_Total Population value Geography_Total Square Land Area Geography_Total Square Land Area value Geography_Total Coastline Coverage Geography_Total Coastline Coverage value Geography_Total Waterway Coverage Geography_Total Waterway Coverage value Geography_Total Border Coverage Geography_Total Border Coverage value
0 Afghanistan 1.3444 Afghanistan 260 Afghanistan 0 Afghanistan 25 Afghanistan 30 Afghanistan 0 Afghanistan 187 Afghanistan 0 Afghanistan 0 Afghanistan 1062 Afghanistan 0 Afghanistan 176 Afghanistan 50 Afghanistan 0.0 Afghanistan 0.0 Afghanistan 0.0 Afghanistan 0.0 Afghanistan 0.0 Afghanistan 12,00,00,00,000 Afghanistan 2,84,00,00,000 Afghanistan 43 Afghanistan 0 Afghanistan 5500 Afghanistan 0 Afghanistan 1,43,25,743 Afghanistan 3,49,40,837 Afghanistan 6,52,230 Afghanistan 0 Afghanistan 1200 Afghanistan 5987.0
1 Albania 2.3137 Albania 19 Albania 0 Albania 0 Albania 0 Albania 0 Albania 19 Albania 0 Albania 0 Albania 467 Albania 0 Albania 0 Albania 0 Albania 38.0 Albania 0.0 Albania 0.0 Albania 0.0 Albania 0.0 Albania 25,00,00,000 Albania 9,50,50,00,000 Albania 4 Albania 16000 Albania 42500 Albania 16,83,00,000 Albania 15,19,438 Albania 30,57,220 Albania 28748 Albania 362 Albania 41 Albania 691.0
2 Algeria 0.4659 Algeria 551 Algeria 103 Algeria 22 Algeria 59 Algeria 87 Algeria 257 Algeria 45 Algeria 880 Algeria 7361 Algeria 320 Algeria 240 Algeria 316 Algeria 201.0 Algeria 0.0 Algeria 6.0 Algeria 0.0 Algeria 5.0 Algeria 13,00,00,00,000 Algeria 6,26,00,00,000 Algeria 157 Algeria 13,06,000 Algeria 3,25,000 Algeria 12,20,00,00,000 Algeria 2,07,41,263 Algeria 4,16,57,488 Algeria 23,81,741 Algeria 998 Algeria 0 Algeria 6734.0
3 Angola 0.8379 Angola 295 Angola 72 Angola 18 Angola 30 Angola 47 Angola 126 Angola 15 Angola 379 Angola 595 Angola 28 Angola 357 Angola 115 Angola 57.0 Angola 0.0 Angola 0.0 Angola 0.0 Angola 0.0 Angola 7,00,00,00,000 Angola 42,08,00,00,000 Angola 176 Angola 16,66,000 Angola 82300 Angola 8,27,30,00,000 Angola 62,44,205 Angola 3,03,55,880 Angola 12,46,700 Angola 1600 Angola 1300 Angola 5369.0
4 Argentina 0.6521 Argentina 227 Argentina 24 Argentina 7 Argentina 9 Argentina 64 Argentina 100 Argentina 0 Argentina 370 Argentina 739 Argentina 83 Argentina 172 Argentina 26 Argentina 49.0 Argentina 0.0 Argentina 2.0 Argentina 4.0 Argentina 0.0 Argentina 4,20,00,00,000 Argentina 2,14,90,00,00,000 Argentina 1138 Argentina 4,79,400 Argentina 6,85,000 Argentina 2,18,50,00,000 Argentina 2,01,79,430 Argentina 4,46,94,198 Argentina 27,80,400 Argentina 4989 Argentina 11000 Argentina 11968.0

Selecting Value-Related Columns¶

In [12]:
# to find all occurrences of the pattern ".*value" within each column name. 
value_cols = [i[0] for i in df.columns.str.findall(".*value") if i !=[]]

value_cols
Out[12]:
['Airforce Strength_Aircraft Strength value',
 'Airforce Strength_Fighter/Interceptor Strength value',
 'Airforce Strength_Attack Aircraft Strength value',
 'Airforce Strength_Transport Aircraft Fleet Strength value',
 'Airforce Strength_Trainer Aircraft Fleet value',
 'Airforce Strength_Helicopter Fleet Strength value',
 'Airforce Strength_Attack Helicopter Fleet Strength value',
 'Land Strength_Tank Strength value',
 'Land Strength_AFV/APC Strength value',
 'Land Strength_Self-Propelled Artillery Strength value',
 'Land Strength_Towed Artillery Strength value',
 'Land Strength_Rocket Projector Strength value',
 'Navy Strength_Navy Fleet Strengths value',
 'Navy Strength_Aircraft Carrier Fleet Strength value',
 'Navy Strength_Submarine Fleet Strength value',
 'Navy Strength_Destroyer Fleet Strength value',
 'Navy Strength_Frigate Fleet Strength value',
 'Finances_defense spending budget value',
 'Finances_External Debt value',
 'Logistics_Airport Totals value',
 'Natural resources_Oil Production value',
 'Natural resources_Oil Consumption value',
 'Natural resources_Proven Oil Reserves value',
 'Manpower_Available Manpower value',
 'Manpower_Total Population value',
 'Geography_Total Square Land Area value',
 'Geography_Total Coastline Coverage value',
 'Geography_Total Waterway Coverage value',
 'Geography_Total Border Coverage value']
In [13]:
# Create a copy of the original DataFrame to avoid modifying it directly if you don't want to
value_df = df.copy()

# Select the "value" columns
value_df = value_df[value_cols]

# Insert the "country" column
value_df.insert(0, "country", df["2020 ranking_Military Strength"])

# Insert the "Military Strength Power Index" column
value_df.insert(1, "Military Strength Power Index", df["2020 ranking_Military Strength Power Index"])

# Now, if you want to rename 'value_df' back to 'df':
df = value_df.copy() # Use .copy() to avoid potential SettingWithCopyWarning
df.head()
#We've gotten rid of unnecessary, repeated columns.
Out[13]:
country Military Strength Power Index Airforce Strength_Aircraft Strength value Airforce Strength_Fighter/Interceptor Strength value Airforce Strength_Attack Aircraft Strength value Airforce Strength_Transport Aircraft Fleet Strength value Airforce Strength_Trainer Aircraft Fleet value Airforce Strength_Helicopter Fleet Strength value Airforce Strength_Attack Helicopter Fleet Strength value Land Strength_Tank Strength value Land Strength_AFV/APC Strength value Land Strength_Self-Propelled Artillery Strength value Land Strength_Towed Artillery Strength value Land Strength_Rocket Projector Strength value Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value Finances_defense spending budget value Finances_External Debt value Logistics_Airport Totals value Natural resources_Oil Production value Natural resources_Oil Consumption value Natural resources_Proven Oil Reserves value Manpower_Available Manpower value Manpower_Total Population value Geography_Total Square Land Area value Geography_Total Coastline Coverage value Geography_Total Waterway Coverage value Geography_Total Border Coverage value
0 Afghanistan 1.3444 260 0 25 30 0 187 0 0 1062 0 176 50 0.0 0.0 0.0 0.0 0.0 12,00,00,00,000 2,84,00,00,000 43 0 5500 0 1,43,25,743 3,49,40,837 6,52,230 0 1200 5987.0
1 Albania 2.3137 19 0 0 0 0 19 0 0 467 0 0 0 38.0 0.0 0.0 0.0 0.0 25,00,00,000 9,50,50,00,000 4 16000 42500 16,83,00,000 15,19,438 30,57,220 28748 362 41 691.0
2 Algeria 0.4659 551 103 22 59 87 257 45 880 7361 320 240 316 201.0 0.0 6.0 0.0 5.0 13,00,00,00,000 6,26,00,00,000 157 13,06,000 3,25,000 12,20,00,00,000 2,07,41,263 4,16,57,488 23,81,741 998 0 6734.0
3 Angola 0.8379 295 72 18 30 47 126 15 379 595 28 357 115 57.0 0.0 0.0 0.0 0.0 7,00,00,00,000 42,08,00,00,000 176 16,66,000 82300 8,27,30,00,000 62,44,205 3,03,55,880 12,46,700 1600 1300 5369.0
4 Argentina 0.6521 227 24 7 9 64 100 0 370 739 83 172 26 49.0 0.0 2.0 4.0 0.0 4,20,00,00,000 2,14,90,00,00,000 1138 4,79,400 6,85,000 2,18,50,00,000 2,01,79,430 4,46,94,198 27,80,400 4989 11000 11968.0

Check for missing values¶

In [14]:
df.isnull().sum().sort_values(ascending=False)
Out[14]:
Geography_Total Coastline Coverage value                     29
Navy Strength_Aircraft Carrier Fleet Strength value          23
Navy Strength_Frigate Fleet Strength value                   23
Navy Strength_Destroyer Fleet Strength value                 23
Navy Strength_Submarine Fleet Strength value                 23
Navy Strength_Navy Fleet Strengths value                     14
Geography_Total Border Coverage value                         9
Airforce Strength_Helicopter Fleet Strength value             0
Airforce Strength_Attack Helicopter Fleet Strength value      0
Geography_Total Waterway Coverage value                       0
Airforce Strength_Aircraft Strength value                     0
Geography_Total Square Land Area value                        0
Manpower_Total Population value                               0
Manpower_Available Manpower value                             0
Natural resources_Proven Oil Reserves value                   0
Natural resources_Oil Consumption value                       0
Natural resources_Oil Production value                        0
Logistics_Airport Totals value                                0
Finances_External Debt value                                  0
Finances_defense spending budget value                        0
Airforce Strength_Fighter/Interceptor Strength value          0
Airforce Strength_Attack Aircraft Strength value              0
Airforce Strength_Transport Aircraft Fleet Strength value     0
Military Strength Power Index                                 0
Airforce Strength_Trainer Aircraft Fleet value                0
Land Strength_Rocket Projector Strength value                 0
Land Strength_Towed Artillery Strength value                  0
Land Strength_Self-Propelled Artillery Strength value         0
Land Strength_AFV/APC Strength value                          0
Land Strength_Tank Strength value                             0
country                                                       0
dtype: int64
In [15]:
df.isnull().melt(value_name="missing")#unpivoting the table from a wide format to a long format
Out[15]:
variable missing
0 country False
1 country False
2 country False
3 country False
4 country False
... ... ...
4273 Geography_Total Border Coverage value False
4274 Geography_Total Border Coverage value False
4275 Geography_Total Border Coverage value False
4276 Geography_Total Border Coverage value False
4277 Geography_Total Border Coverage value False

4278 rows × 2 columns

In [16]:
sns.displot(
    data=df.isnull().melt(value_name="missing"),
    y="variable",
    hue="missing",
    multiple="fill",
    height=4,
    aspect=1.5
)
plt.axvline(0.25, color="r")
plt.subplots_adjust(left=0.1, right=0.8, bottom=0.1, top=0.9) # Increased left margin
plt.show()
In [17]:
with pd.option_context('display.max_columns', None):
    display(df[df["Geography_Total Coastline Coverage value"].isna()])
# to inspect the rows where the "Geography_Total Coastline Coverage" column has missing values or landlocked countries.
country Military Strength Power Index Airforce Strength_Aircraft Strength value Airforce Strength_Fighter/Interceptor Strength value Airforce Strength_Attack Aircraft Strength value Airforce Strength_Transport Aircraft Fleet Strength value Airforce Strength_Trainer Aircraft Fleet value Airforce Strength_Helicopter Fleet Strength value Airforce Strength_Attack Helicopter Fleet Strength value Land Strength_Tank Strength value Land Strength_AFV/APC Strength value Land Strength_Self-Propelled Artillery Strength value Land Strength_Towed Artillery Strength value Land Strength_Rocket Projector Strength value Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value Finances_defense spending budget value Finances_External Debt value Logistics_Airport Totals value Natural resources_Oil Production value Natural resources_Oil Consumption value Natural resources_Proven Oil Reserves value Manpower_Available Manpower value Manpower_Total Population value Geography_Total Square Land Area value Geography_Total Coastline Coverage value Geography_Total Waterway Coverage value Geography_Total Border Coverage value
5 Armenia 2.1251 64 0 9 3 13 37 20 110 748 38 150 68 0.0 NaN NaN NaN NaN 1,38,50,00,000 10,41,00,00,000 11 0 47500 0 16,96,085 30,38,217 29743 NaN 0 1570.0
7 Austria 0.9568 120 15 0 11 32 62 0 56 467 33 0 0 0.0 NaN NaN NaN NaN 3,38,00,00,000 6,30,80,00,00,000 52 14260 2,15,000 4,30,00,000 40,17,691 87,93,370 83871 NaN 0 2524.0
11 Belarus 0.8179 202 39 68 4 28 63 21 532 1560 482 228 238 0.0 NaN NaN NaN NaN 62,37,02,800 39,92,00,00,000 65 32000 1,90,000 19,80,00,000 49,82,905 95,27,543 2,07,600 NaN 2500 3599.0
13 Bhutan 10.1681 2 0 0 0 0 2 0 0 27 0 0 0 0.0 NaN NaN NaN NaN 2,51,20,000 2,67,10,00,000 2 0 2000 0 1,76,808 7,66,397 38394 NaN 0 1136.0
14 Bolivia 0.9942 69 0 0 14 23 38 0 54 137 0 86 0 173.0 0.0 0.0 0.0 0.0 66,00,00,000 12,81,00,00,000 855 59330 60000 21,15,00,000 50,75,416 1,13,06,341 10,98,581 NaN 10000 7252.0
16 Botswana 2.0582 45 10 0 11 8 16 0 55 245 0 30 20 NaN NaN NaN NaN NaN 45,00,00,000 2,18,70,00,000 74 0 16500 0 9,62,617 22,49,104 5,81,730 NaN 0 4347.0
19 Burkina Faso 1.9009 16 0 3 1 4 8 2 0 350 0 0 0 NaN NaN NaN NaN NaN 13,00,00,000 3,05,60,00,000 23 0 10500 0 78,00,000 1,97,42,715 2,74,200 NaN 0 3611.0
23 Central African Republic 3.2889 3 0 0 2 0 1 0 4 55 0 20 0 NaN NaN NaN NaN NaN 2,00,00,000 77,99,00,000 39 0 4500 0 23,48,581 57,45,062 6,22,984 NaN 2800 5920.0
24 Chad 1.6383 35 0 6 6 4 17 3 60 372 10 51 10 NaN NaN NaN NaN NaN 20,00,00,000 1,72,40,00,000 59 1,28,000 1,00,000 1,50,00,00,000 60,30,834 1,58,33,116 12,84,000 NaN 0 6406.0
30 Czechia 0.5531 95 12 16 8 15 44 15 116 682 86 85 0 NaN NaN NaN NaN NaN 2,96,90,00,000 2,05,20,00,00,000 128 2000 2,00,000 1,50,00,000 50,11,174 1,06,86,269 78867 NaN 664 2046.0
38 Ethiopia 0.8581 86 24 0 9 20 33 8 400 114 67 650 183 NaN NaN NaN NaN NaN 35,00,00,000 26,05,00,00,000 57 0 55000 4,28,000 4,11,43,474 10,83,86,391 11,04,300 NaN 1,04,300 5925.0
48 Hungary 0.8215 47 12 0 5 6 24 8 30 944 0 300 0 NaN NaN NaN NaN NaN 2,08,00,00,000 1,38,10,00,00,000 41 14000 1,45,000 2,51,00,000 46,18,081 98,25,704 1,03,000 NaN 1622 2106.0
62 Kyrgyzstan 1.9244 5 0 0 0 0 5 2 150 385 30 141 21 NaN NaN NaN NaN NaN 2,00,00,000 8,16,40,00,000 28 1000 17200 4,00,00,000 30,29,935 58,49,296 1,99,951 NaN 600 4573.0
63 Laos 3.4433 33 0 0 2 4 27 0 65 30 0 62 0 36.0 0.0 0.0 0.0 0.0 1,85,00,000 14,90,00,00,000 41 0 4500 0 32,48,143 72,34,171 2,36,800 NaN 4600 5274.0
71 Mali 1.8941 29 9 0 6 5 8 6 80 248 0 50 32 NaN NaN NaN NaN NaN 7,00,00,000 4,19,20,00,000 25 0 5500 0 59,91,557 1,84,29,893 12,40,192 NaN 0 7908.0
74 Moldova 2.1291 3 0 0 1 0 2 0 0 341 9 52 11 NaN NaN NaN NaN NaN 3,00,00,000 6,54,90,00,000 7 0 16320 0 20,14,503 34,37,720 33851 NaN 558 1885.0
75 Mongolia 2.0299 9 0 0 3 0 6 0 470 750 0 300 130 NaN NaN NaN NaN NaN 15,50,00,000 25,33,00,00,000 44 20000 25000 0 18,18,609 31,03,428 15,64,116 NaN 580 8082.0
81 Nepal 2.9891 16 0 0 3 0 13 0 0 214 0 84 0 NaN NaN NaN NaN NaN 21,30,00,000 5,84,90,00,000 47 0 20000 0 1,47,39,923 2,97,17,587 1,47,181 NaN 0 3159.0
85 Niger 2.0153 16 0 2 5 0 7 1 0 182 0 0 0 NaN NaN NaN NaN NaN 32,50,00,000 3,72,80,00,000 30 11000 6500 15,00,00,000 67,54,519 1,98,66,231 12,67,000 NaN 300 5834.0
88 North Macedonia 3.1808 20 0 0 0 10 14 4 31 251 0 144 24 NaN NaN NaN NaN NaN 10,81,52,512 8,79,00,00,000 10 0 18500 0 10,53,116 21,18,945 25713 NaN 280 838.0
93 Paraguay 2.1898 33 0 0 6 15 11 0 13 63 0 108 0 40.0 0.0 0.0 0.0 0.0 25,00,00,000 17,70,00,00,000 799 0 30000 0 33,72,366 70,25,763 4,06,752 NaN 3100 4655.0
103 Serbia 0.9479 109 9 17 1 38 44 0 293 904 87 144 88 19.0 0.0 0.0 0.0 0.0 90,70,00,000 29,50,00,00,000 26 18740 75000 7,75,00,000 34,68,274 70,78,110 77474 NaN 587 2322.0
106 Slovakia 0.8466 47 10 0 7 8 21 0 20 661 16 9 25 0.0 NaN NaN NaN NaN 2,12,18,17,575 75,04,00,00,000 35 200 82000 90,00,000 27,76,970 54,45,040 49035 NaN 172 1587.0
111 South Sudan 2.3501 19 0 0 2 0 17 6 110 200 24 0 14 0.0 2.0 22.0 12.0 18.0 8,00,00,000 2,25,00,00,000 85 1,50,200 60000 3,75,00,00,000 52,45,155 1,02,04,581 6,44,329 NaN 0 6018.0
117 Switzerland 0.5259 169 54 0 18 54 42 0 326 1338 224 0 0 0.0 NaN NaN NaN NaN 5,00,00,00,000 16,64,00,00,00,000 63 0 2,60,000 0 36,32,250 82,92,809 41277 NaN 1299 1770.0
120 Tajikistan 1.8661 25 0 0 1 4 20 6 253 347 0 90 128 0.0 NaN NaN NaN NaN 1,60,00,00,000 5,75,00,00,000 24 180 20500 1,20,00,000 40,95,924 86,04,882 1,43,100 NaN 200 4130.0
126 Uganda 1.6176 48 10 0 2 10 26 5 371 1081 6 53 26 8.0 0.0 0.0 0.0 0.0 93,50,00,000 10,80,00,00,000 47 0 17500 2,50,00,00,000 1,47,07,350 4,08,53,749 2,41,038 NaN 0 2729.0
136 Zambia 1.6464 108 18 0 11 52 27 0 75 184 0 42 50 0.0 0.0 0.0 0.0 0.0 4,00,00,000 11,66,00,00,000 88 0 21000 0 61,66,905 1,64,45,079 7,52,618 NaN 2250 6043.0
137 Zimbabwe 1.7577 90 10 0 14 38 28 6 42 300 0 65 22 0.0 0.0 0.0 0.0 0.0 10,00,00,000 9,35,70,00,000 196 0 19500 0 55,84,086 1,40,30,368 3,90,757 NaN 0 3229.0

Deal with missing values¶

  • Hint-1, use wikipedia to fill in missing values ​​comparing with similar countries
  • Hint-2, Georeferences of countries can help you
In [18]:
df.loc[df["Geography_Total Coastline Coverage value"].isnull(), ['country',
                                                                             'Navy Strength_Navy Fleet Strengths value',
                                                                             'Navy Strength_Aircraft Carrier Fleet Strength value',
                                                                             'Navy Strength_Submarine Fleet Strength value',
                                                                             'Navy Strength_Destroyer Fleet Strength value',
                                                                             'Navy Strength_Frigate Fleet Strength value',
                                                                             'Geography_Total Waterway Coverage value']]
Out[18]:
country Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value Geography_Total Waterway Coverage value
5 Armenia 0.0 NaN NaN NaN NaN 0
7 Austria 0.0 NaN NaN NaN NaN 0
11 Belarus 0.0 NaN NaN NaN NaN 2500
13 Bhutan 0.0 NaN NaN NaN NaN 0
14 Bolivia 173.0 0.0 0.0 0.0 0.0 10000
16 Botswana NaN NaN NaN NaN NaN 0
19 Burkina Faso NaN NaN NaN NaN NaN 0
23 Central African Republic NaN NaN NaN NaN NaN 2800
24 Chad NaN NaN NaN NaN NaN 0
30 Czechia NaN NaN NaN NaN NaN 664
38 Ethiopia NaN NaN NaN NaN NaN 1,04,300
48 Hungary NaN NaN NaN NaN NaN 1622
62 Kyrgyzstan NaN NaN NaN NaN NaN 600
63 Laos 36.0 0.0 0.0 0.0 0.0 4600
71 Mali NaN NaN NaN NaN NaN 0
74 Moldova NaN NaN NaN NaN NaN 558
75 Mongolia NaN NaN NaN NaN NaN 580
81 Nepal NaN NaN NaN NaN NaN 0
85 Niger NaN NaN NaN NaN NaN 300
88 North Macedonia NaN NaN NaN NaN NaN 280
93 Paraguay 40.0 0.0 0.0 0.0 0.0 3100
103 Serbia 19.0 0.0 0.0 0.0 0.0 587
106 Slovakia 0.0 NaN NaN NaN NaN 172
111 South Sudan 0.0 2.0 22.0 12.0 18.0 0
117 Switzerland 0.0 NaN NaN NaN NaN 1299
120 Tajikistan 0.0 NaN NaN NaN NaN 200
126 Uganda 8.0 0.0 0.0 0.0 0.0 0
136 Zambia 0.0 0.0 0.0 0.0 0.0 2250
137 Zimbabwe 0.0 0.0 0.0 0.0 0.0 0
In [19]:
df.loc[df["country"] == "South Sudan",
             ['country',
             'Navy Strength_Navy Fleet Strengths value',
             'Navy Strength_Aircraft Carrier Fleet Strength value',
             'Navy Strength_Submarine Fleet Strength value',
             'Navy Strength_Destroyer Fleet Strength value',
             'Navy Strength_Frigate Fleet Strength value',
           ]] 
Out[19]:
country Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value
111 South Sudan 0.0 2.0 22.0 12.0 18.0

There's a very interesting situation regarding "Navy Strength Values" of South Sudan. Because it has no "Coastline Coverage Value". So let's fix.

In [20]:
df.loc[df["country"] == "South Sudan", 'Navy Strength_Aircraft Carrier Fleet Strength value'] = 0
df.loc[df["country"] == "South Sudan", 'Navy Strength_Submarine Fleet Strength value'] = 0
df.loc[df["country"] == "South Sudan", 'Navy Strength_Destroyer Fleet Strength value'] = 0
df.loc[df["country"] == "South Sudan", 'Navy Strength_Frigate Fleet Strength value'] = 0
In [21]:
df.loc[
    
    df["Geography_Total Coastline Coverage value"].isnull(),
    
    ['Navy Strength_Navy Fleet Strengths value',
     'Navy Strength_Aircraft Carrier Fleet Strength value',
     'Navy Strength_Submarine Fleet Strength value',
     'Navy Strength_Destroyer Fleet Strength value',
     'Navy Strength_Frigate Fleet Strength value']
    
    ] = 0
In [22]:
sns.displot(
    data=df.isnull().melt(value_name="missing"),
    y="variable",
    hue="missing",
    multiple="fill",
    height=4,
    aspect=1.5
)
plt.axvline(0.25, color="r")
plt.subplots_adjust(left=0.1, right=0.8, bottom=0.1, top=0.9) # Increased left margin
plt.show()
In [23]:
df.loc[df['Navy Strength_Aircraft Carrier Fleet Strength value'].isnull()|
             df['Navy Strength_Submarine Fleet Strength value'].isnull()|
             df['Navy Strength_Destroyer Fleet Strength value'].isnull()|
             df['Navy Strength_Frigate Fleet Strength value'].isnull()] 
Out[23]:
country Military Strength Power Index Airforce Strength_Aircraft Strength value Airforce Strength_Fighter/Interceptor Strength value Airforce Strength_Attack Aircraft Strength value Airforce Strength_Transport Aircraft Fleet Strength value Airforce Strength_Trainer Aircraft Fleet value Airforce Strength_Helicopter Fleet Strength value Airforce Strength_Attack Helicopter Fleet Strength value Land Strength_Tank Strength value Land Strength_AFV/APC Strength value Land Strength_Self-Propelled Artillery Strength value Land Strength_Towed Artillery Strength value Land Strength_Rocket Projector Strength value Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value Finances_defense spending budget value Finances_External Debt value Logistics_Airport Totals value Natural resources_Oil Production value Natural resources_Oil Consumption value Natural resources_Proven Oil Reserves value Manpower_Available Manpower value Manpower_Total Population value Geography_Total Square Land Area value Geography_Total Coastline Coverage value Geography_Total Waterway Coverage value Geography_Total Border Coverage value
110 South Korea 0.1509 1649 414 71 41 298 803 112 2614 14000 3040 3854 575 234.0 NaN NaN NaN NaN 44,00,00,00,000 3,84,60,00,00,000 111 0 28,00,000 0 2,57,09,049 5,14,18,097 99720 2413 1600 237.0
132 Uzbekistan 0.8086 185 66 20 18 2 79 25 420 1215 137 0 98 0.0 NaN NaN NaN NaN 97,50,00,000 16,90,00,00,000 53 46070 1,42,000 59,40,00,000 1,59,12,566 3,00,23,709 4,47,400 420 1100 6893.0
In [24]:
df.loc[df["country"] == "Uzbekistan",
            ['Navy Strength_Navy Fleet Strengths value',
             'Navy Strength_Aircraft Carrier Fleet Strength value',
             'Navy Strength_Submarine Fleet Strength value',
             'Navy Strength_Destroyer Fleet Strength value',
             'Navy Strength_Frigate Fleet Strength value',
           ]] 
Out[24]:
Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value
132 0.0 NaN NaN NaN NaN
In [25]:
df.loc[df["country"] == "Uzbekistan",
            ['Navy Strength_Navy Fleet Strengths value',
             'Navy Strength_Aircraft Carrier Fleet Strength value',
             'Navy Strength_Submarine Fleet Strength value',
             'Navy Strength_Destroyer Fleet Strength value',
             'Navy Strength_Frigate Fleet Strength value',
           ]] = 0
In [26]:
df.loc[df["country"] == "South Korea",
            ['Navy Strength_Navy Fleet Strengths value',
             'Navy Strength_Aircraft Carrier Fleet Strength value',
             'Navy Strength_Submarine Fleet Strength value',
             'Navy Strength_Destroyer Fleet Strength value',
             'Navy Strength_Frigate Fleet Strength value',
           ]] 
Out[26]:
Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value
110 234.0 NaN NaN NaN NaN
In [27]:
df.loc[((df['Navy Strength_Navy Fleet Strengths value'] > 200) & 
             (df['Navy Strength_Navy Fleet Strengths value'] < 250)),
            ['country',
             'Navy Strength_Navy Fleet Strengths value',
             'Navy Strength_Aircraft Carrier Fleet Strength value',
             'Navy Strength_Submarine Fleet Strength value',
             'Navy Strength_Destroyer Fleet Strength value',
             'Navy Strength_Frigate Fleet Strength value',
           ]] 
Out[27]:
country Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value
2 Algeria 201.0 0.0 6.0 0.0 5.0
39 Finland 246.0 0.0 0.0 0.0 0.0
55 Italy 249.0 2.0 8.0 4.0 12.0
110 South Korea 234.0 NaN NaN NaN NaN
In [28]:
df.loc[df["country"] == "France",
             ['country',
             'Navy Strength_Navy Fleet Strengths value',
             'Navy Strength_Aircraft Carrier Fleet Strength value',
             'Navy Strength_Submarine Fleet Strength value',
             'Navy Strength_Destroyer Fleet Strength value',
             'Navy Strength_Frigate Fleet Strength value',
           ]] 
Out[28]:
country Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value
40 France 180.0 4.0 9.0 11.0 11.0
In [29]:
df.loc[df["country"] == "South Korea"]
Out[29]:
country Military Strength Power Index Airforce Strength_Aircraft Strength value Airforce Strength_Fighter/Interceptor Strength value Airforce Strength_Attack Aircraft Strength value Airforce Strength_Transport Aircraft Fleet Strength value Airforce Strength_Trainer Aircraft Fleet value Airforce Strength_Helicopter Fleet Strength value Airforce Strength_Attack Helicopter Fleet Strength value Land Strength_Tank Strength value Land Strength_AFV/APC Strength value Land Strength_Self-Propelled Artillery Strength value Land Strength_Towed Artillery Strength value Land Strength_Rocket Projector Strength value Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value Finances_defense spending budget value Finances_External Debt value Logistics_Airport Totals value Natural resources_Oil Production value Natural resources_Oil Consumption value Natural resources_Proven Oil Reserves value Manpower_Available Manpower value Manpower_Total Population value Geography_Total Square Land Area value Geography_Total Coastline Coverage value Geography_Total Waterway Coverage value Geography_Total Border Coverage value
110 South Korea 0.1509 1649 414 71 41 298 803 112 2614 14000 3040 3854 575 234.0 NaN NaN NaN NaN 44,00,00,00,000 3,84,60,00,00,000 111 0 28,00,000 0 2,57,09,049 5,14,18,097 99720 2413 1600 237.0
In [30]:
# All the numbers derived from South Korea Navy https://www.globalfirepower.com/
df.loc[df["country"] == "South Korea",'Navy Strength_Aircraft Carrier Fleet Strength value'] = 0
df.loc[df["country"] == "South Korea",'Navy Strength_Submarine Fleet Strength value'] = 19
df.loc[df["country"] == "South Korea",'Navy Strength_Destroyer Fleet Strength value'] = 12
df.loc[df["country"] == "South Korea",'Navy Strength_Frigate Fleet Strength value'] = 12
In [31]:
df.loc[df["country"] == "South Korea"]
Out[31]:
country Military Strength Power Index Airforce Strength_Aircraft Strength value Airforce Strength_Fighter/Interceptor Strength value Airforce Strength_Attack Aircraft Strength value Airforce Strength_Transport Aircraft Fleet Strength value Airforce Strength_Trainer Aircraft Fleet value Airforce Strength_Helicopter Fleet Strength value Airforce Strength_Attack Helicopter Fleet Strength value Land Strength_Tank Strength value Land Strength_AFV/APC Strength value Land Strength_Self-Propelled Artillery Strength value Land Strength_Towed Artillery Strength value Land Strength_Rocket Projector Strength value Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value Finances_defense spending budget value Finances_External Debt value Logistics_Airport Totals value Natural resources_Oil Production value Natural resources_Oil Consumption value Natural resources_Proven Oil Reserves value Manpower_Available Manpower value Manpower_Total Population value Geography_Total Square Land Area value Geography_Total Coastline Coverage value Geography_Total Waterway Coverage value Geography_Total Border Coverage value
110 South Korea 0.1509 1649 414 71 41 298 803 112 2614 14000 3040 3854 575 234.0 0.0 19.0 12.0 12.0 44,00,00,00,000 3,84,60,00,00,000 111 0 28,00,000 0 2,57,09,049 5,14,18,097 99720 2413 1600 237.0
In [32]:
sns.displot(
    data=df.isnull().melt(value_name="missing"),
    y="variable",
    hue="missing",
    multiple="fill",
    height=4,
    aspect=1.5
)
plt.axvline(0.25, color="r")
plt.subplots_adjust(left=0.1, right=0.8, bottom=0.1, top=0.9) # Increased left margin
plt.show()
In [33]:
df.loc[df['Geography_Total Coastline Coverage value'].isnull()]
Out[33]:
country Military Strength Power Index Airforce Strength_Aircraft Strength value Airforce Strength_Fighter/Interceptor Strength value Airforce Strength_Attack Aircraft Strength value Airforce Strength_Transport Aircraft Fleet Strength value Airforce Strength_Trainer Aircraft Fleet value Airforce Strength_Helicopter Fleet Strength value Airforce Strength_Attack Helicopter Fleet Strength value Land Strength_Tank Strength value Land Strength_AFV/APC Strength value Land Strength_Self-Propelled Artillery Strength value Land Strength_Towed Artillery Strength value Land Strength_Rocket Projector Strength value Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value Finances_defense spending budget value Finances_External Debt value Logistics_Airport Totals value Natural resources_Oil Production value Natural resources_Oil Consumption value Natural resources_Proven Oil Reserves value Manpower_Available Manpower value Manpower_Total Population value Geography_Total Square Land Area value Geography_Total Coastline Coverage value Geography_Total Waterway Coverage value Geography_Total Border Coverage value
5 Armenia 2.1251 64 0 9 3 13 37 20 110 748 38 150 68 0.0 0.0 0.0 0.0 0.0 1,38,50,00,000 10,41,00,00,000 11 0 47500 0 16,96,085 30,38,217 29743 NaN 0 1570.0
7 Austria 0.9568 120 15 0 11 32 62 0 56 467 33 0 0 0.0 0.0 0.0 0.0 0.0 3,38,00,00,000 6,30,80,00,00,000 52 14260 2,15,000 4,30,00,000 40,17,691 87,93,370 83871 NaN 0 2524.0
11 Belarus 0.8179 202 39 68 4 28 63 21 532 1560 482 228 238 0.0 0.0 0.0 0.0 0.0 62,37,02,800 39,92,00,00,000 65 32000 1,90,000 19,80,00,000 49,82,905 95,27,543 2,07,600 NaN 2500 3599.0
13 Bhutan 10.1681 2 0 0 0 0 2 0 0 27 0 0 0 0.0 0.0 0.0 0.0 0.0 2,51,20,000 2,67,10,00,000 2 0 2000 0 1,76,808 7,66,397 38394 NaN 0 1136.0
14 Bolivia 0.9942 69 0 0 14 23 38 0 54 137 0 86 0 0.0 0.0 0.0 0.0 0.0 66,00,00,000 12,81,00,00,000 855 59330 60000 21,15,00,000 50,75,416 1,13,06,341 10,98,581 NaN 10000 7252.0
16 Botswana 2.0582 45 10 0 11 8 16 0 55 245 0 30 20 0.0 0.0 0.0 0.0 0.0 45,00,00,000 2,18,70,00,000 74 0 16500 0 9,62,617 22,49,104 5,81,730 NaN 0 4347.0
19 Burkina Faso 1.9009 16 0 3 1 4 8 2 0 350 0 0 0 0.0 0.0 0.0 0.0 0.0 13,00,00,000 3,05,60,00,000 23 0 10500 0 78,00,000 1,97,42,715 2,74,200 NaN 0 3611.0
23 Central African Republic 3.2889 3 0 0 2 0 1 0 4 55 0 20 0 0.0 0.0 0.0 0.0 0.0 2,00,00,000 77,99,00,000 39 0 4500 0 23,48,581 57,45,062 6,22,984 NaN 2800 5920.0
24 Chad 1.6383 35 0 6 6 4 17 3 60 372 10 51 10 0.0 0.0 0.0 0.0 0.0 20,00,00,000 1,72,40,00,000 59 1,28,000 1,00,000 1,50,00,00,000 60,30,834 1,58,33,116 12,84,000 NaN 0 6406.0
30 Czechia 0.5531 95 12 16 8 15 44 15 116 682 86 85 0 0.0 0.0 0.0 0.0 0.0 2,96,90,00,000 2,05,20,00,00,000 128 2000 2,00,000 1,50,00,000 50,11,174 1,06,86,269 78867 NaN 664 2046.0
38 Ethiopia 0.8581 86 24 0 9 20 33 8 400 114 67 650 183 0.0 0.0 0.0 0.0 0.0 35,00,00,000 26,05,00,00,000 57 0 55000 4,28,000 4,11,43,474 10,83,86,391 11,04,300 NaN 1,04,300 5925.0
48 Hungary 0.8215 47 12 0 5 6 24 8 30 944 0 300 0 0.0 0.0 0.0 0.0 0.0 2,08,00,00,000 1,38,10,00,00,000 41 14000 1,45,000 2,51,00,000 46,18,081 98,25,704 1,03,000 NaN 1622 2106.0
62 Kyrgyzstan 1.9244 5 0 0 0 0 5 2 150 385 30 141 21 0.0 0.0 0.0 0.0 0.0 2,00,00,000 8,16,40,00,000 28 1000 17200 4,00,00,000 30,29,935 58,49,296 1,99,951 NaN 600 4573.0
63 Laos 3.4433 33 0 0 2 4 27 0 65 30 0 62 0 0.0 0.0 0.0 0.0 0.0 1,85,00,000 14,90,00,00,000 41 0 4500 0 32,48,143 72,34,171 2,36,800 NaN 4600 5274.0
71 Mali 1.8941 29 9 0 6 5 8 6 80 248 0 50 32 0.0 0.0 0.0 0.0 0.0 7,00,00,000 4,19,20,00,000 25 0 5500 0 59,91,557 1,84,29,893 12,40,192 NaN 0 7908.0
74 Moldova 2.1291 3 0 0 1 0 2 0 0 341 9 52 11 0.0 0.0 0.0 0.0 0.0 3,00,00,000 6,54,90,00,000 7 0 16320 0 20,14,503 34,37,720 33851 NaN 558 1885.0
75 Mongolia 2.0299 9 0 0 3 0 6 0 470 750 0 300 130 0.0 0.0 0.0 0.0 0.0 15,50,00,000 25,33,00,00,000 44 20000 25000 0 18,18,609 31,03,428 15,64,116 NaN 580 8082.0
81 Nepal 2.9891 16 0 0 3 0 13 0 0 214 0 84 0 0.0 0.0 0.0 0.0 0.0 21,30,00,000 5,84,90,00,000 47 0 20000 0 1,47,39,923 2,97,17,587 1,47,181 NaN 0 3159.0
85 Niger 2.0153 16 0 2 5 0 7 1 0 182 0 0 0 0.0 0.0 0.0 0.0 0.0 32,50,00,000 3,72,80,00,000 30 11000 6500 15,00,00,000 67,54,519 1,98,66,231 12,67,000 NaN 300 5834.0
88 North Macedonia 3.1808 20 0 0 0 10 14 4 31 251 0 144 24 0.0 0.0 0.0 0.0 0.0 10,81,52,512 8,79,00,00,000 10 0 18500 0 10,53,116 21,18,945 25713 NaN 280 838.0
93 Paraguay 2.1898 33 0 0 6 15 11 0 13 63 0 108 0 0.0 0.0 0.0 0.0 0.0 25,00,00,000 17,70,00,00,000 799 0 30000 0 33,72,366 70,25,763 4,06,752 NaN 3100 4655.0
103 Serbia 0.9479 109 9 17 1 38 44 0 293 904 87 144 88 0.0 0.0 0.0 0.0 0.0 90,70,00,000 29,50,00,00,000 26 18740 75000 7,75,00,000 34,68,274 70,78,110 77474 NaN 587 2322.0
106 Slovakia 0.8466 47 10 0 7 8 21 0 20 661 16 9 25 0.0 0.0 0.0 0.0 0.0 2,12,18,17,575 75,04,00,00,000 35 200 82000 90,00,000 27,76,970 54,45,040 49035 NaN 172 1587.0
111 South Sudan 2.3501 19 0 0 2 0 17 6 110 200 24 0 14 0.0 0.0 0.0 0.0 0.0 8,00,00,000 2,25,00,00,000 85 1,50,200 60000 3,75,00,00,000 52,45,155 1,02,04,581 6,44,329 NaN 0 6018.0
117 Switzerland 0.5259 169 54 0 18 54 42 0 326 1338 224 0 0 0.0 0.0 0.0 0.0 0.0 5,00,00,00,000 16,64,00,00,00,000 63 0 2,60,000 0 36,32,250 82,92,809 41277 NaN 1299 1770.0
120 Tajikistan 1.8661 25 0 0 1 4 20 6 253 347 0 90 128 0.0 0.0 0.0 0.0 0.0 1,60,00,00,000 5,75,00,00,000 24 180 20500 1,20,00,000 40,95,924 86,04,882 1,43,100 NaN 200 4130.0
126 Uganda 1.6176 48 10 0 2 10 26 5 371 1081 6 53 26 0.0 0.0 0.0 0.0 0.0 93,50,00,000 10,80,00,00,000 47 0 17500 2,50,00,00,000 1,47,07,350 4,08,53,749 2,41,038 NaN 0 2729.0
136 Zambia 1.6464 108 18 0 11 52 27 0 75 184 0 42 50 0.0 0.0 0.0 0.0 0.0 4,00,00,000 11,66,00,00,000 88 0 21000 0 61,66,905 1,64,45,079 7,52,618 NaN 2250 6043.0
137 Zimbabwe 1.7577 90 10 0 14 38 28 6 42 300 0 65 22 0.0 0.0 0.0 0.0 0.0 10,00,00,000 9,35,70,00,000 196 0 19500 0 55,84,086 1,40,30,368 3,90,757 NaN 0 3229.0
In [34]:
df.loc[df['Geography_Total Coastline Coverage value'].isnull(), 
                      'Geography_Total Coastline Coverage value']  = 0 
In [35]:
df.loc[df['Geography_Total Border Coverage value'].isnull()]
Out[35]:
country Military Strength Power Index Airforce Strength_Aircraft Strength value Airforce Strength_Fighter/Interceptor Strength value Airforce Strength_Attack Aircraft Strength value Airforce Strength_Transport Aircraft Fleet Strength value Airforce Strength_Trainer Aircraft Fleet value Airforce Strength_Helicopter Fleet Strength value Airforce Strength_Attack Helicopter Fleet Strength value Land Strength_Tank Strength value Land Strength_AFV/APC Strength value Land Strength_Self-Propelled Artillery Strength value Land Strength_Towed Artillery Strength value Land Strength_Rocket Projector Strength value Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value Finances_defense spending budget value Finances_External Debt value Logistics_Airport Totals value Natural resources_Oil Production value Natural resources_Oil Consumption value Natural resources_Proven Oil Reserves value Manpower_Available Manpower value Manpower_Total Population value Geography_Total Square Land Area value Geography_Total Coastline Coverage value Geography_Total Waterway Coverage value Geography_Total Border Coverage value
6 Australia 0.3225 464 82 6 38 174 133 22 59 3051 0 54 0 48.0 2.0 6.0 2.0 8.0 26,30,00,00,000 17,14,00,00,00,000 480 2,63,000 10,05,000 1,82,10,00,000 1,08,08,002 2,34,70,145 77,41,220 25760 2000 NaN
9 Bahrain 1.8547 109 17 0 2 37 65 22 180 843 33 26 17 39.0 0.0 0.0 0.0 1.0 1,41,50,00,000 52,15,00,00,000 4 45000 55000 12,46,00,000 8,06,505 14,22,659 760 161 0 NaN
57 Japan 0.1501 1561 279 12 60 427 637 119 1004 3130 238 500 99 155.0 4.0 20.0 40.0 0.0 49,00,00,00,000 32,40,00,00,00,000 175 3841 40,00,000 4,41,20,000 5,38,73,803 12,61,68,156 3,77,915 29751 1770 NaN
69 Madagascar 3.0869 6 0 0 0 0 6 0 12 103 0 25 0 8.0 0.0 0.0 0.0 0.0 11,50,00,000 4,08,90,00,000 83 0 18500 0 1,01,45,026 2,56,83,610 5,87,040 4828 600 NaN
83 New Zealand 1.3684 48 0 0 7 13 22 0 0 200 0 24 0 11.0 0.0 0.0 0.0 2.0 4,30,00,00,000 91,62,00,00,000 123 31480 1,50,000 5,69,00,000 21,15,989 45,45,627 2,67,710 15134 0 NaN
95 Philippines 0.7852 171 0 19 23 24 97 0 7 513 0 286 0 103.0 0.0 0.0 0.0 2.0 3,47,00,00,000 76,18,00,00,000 247 15000 3,20,000 13,85,00,000 5,18,87,757 10,58,93,381 3,00,000 36289 3219 NaN
105 Singapore 0.7966 235 100 0 9 36 77 17 180 3000 48 77 24 40.0 0.0 0.0 0.0 6.0 11,20,00,00,000 5,66,10,00,00,000 9 0 13,40,000 0 40,17,314 59,95,991 697 193 10 NaN
113 Sri Lanka 1.4661 77 0 0 15 6 54 9 202 570 0 209 22 40.0 0.0 0.0 0.0 0.0 2,50,00,00,000 51,72,00,00,000 19 0 90000 0 1,09,27,071 2,25,76,592 65610 1340 160 NaN
119 Taiwan 0.4008 744 289 0 19 207 210 91 1180 2000 482 1160 115 117.0 0.0 4.0 4.0 22.0 10,72,50,00,000 1,81,90,00,00,000 37 196 10,32,000 23,80,000 1,21,96,809 2,35,45,963 35980 1566 3720 NaN
In [36]:
df.loc[df['Geography_Total Border Coverage value'].isnull(), 
                      'Geography_Total Border Coverage value' ] = 0
In [37]:
sns.displot(
    data=df.isnull().melt(value_name="missing"),
    y="variable",
    hue="missing",
    multiple="fill",
    height=4,
    aspect=1.5
)
plt.axvline(0.25, color="r")
plt.subplots_adjust(left=0.1, right=0.8, bottom=0.1, top=0.9) # Increased left margin
plt.show()
In [38]:
df.reset_index(drop=True,inplace=True)

Fix the dtypes¶

In [39]:
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 138 entries, 0 to 137
Data columns (total 31 columns):
 #   Column                                                     Non-Null Count  Dtype  
---  ------                                                     --------------  -----  
 0   country                                                    138 non-null    object 
 1   Military Strength Power Index                              138 non-null    float64
 2   Airforce Strength_Aircraft Strength value                  138 non-null    int64  
 3   Airforce Strength_Fighter/Interceptor Strength value       138 non-null    int64  
 4   Airforce Strength_Attack Aircraft Strength value           138 non-null    int64  
 5   Airforce Strength_Transport Aircraft Fleet Strength value  138 non-null    int64  
 6   Airforce Strength_Trainer Aircraft Fleet value             138 non-null    int64  
 7   Airforce Strength_Helicopter Fleet Strength value          138 non-null    int64  
 8   Airforce Strength_Attack Helicopter Fleet Strength value   138 non-null    int64  
 9   Land Strength_Tank Strength value                          138 non-null    int64  
 10  Land Strength_AFV/APC Strength value                       138 non-null    int64  
 11  Land Strength_Self-Propelled Artillery Strength value      138 non-null    int64  
 12  Land Strength_Towed Artillery Strength value               138 non-null    int64  
 13  Land Strength_Rocket Projector Strength value              138 non-null    int64  
 14  Navy Strength_Navy Fleet Strengths value                   138 non-null    float64
 15  Navy Strength_Aircraft Carrier Fleet Strength value        138 non-null    float64
 16  Navy Strength_Submarine Fleet Strength value               138 non-null    float64
 17  Navy Strength_Destroyer Fleet Strength value               138 non-null    float64
 18  Navy Strength_Frigate Fleet Strength value                 138 non-null    float64
 19  Finances_defense spending budget value                     138 non-null    object 
 20  Finances_External Debt value                               138 non-null    object 
 21  Logistics_Airport Totals value                             138 non-null    int64  
 22  Natural resources_Oil Production value                     138 non-null    object 
 23  Natural resources_Oil Consumption value                    138 non-null    object 
 24  Natural resources_Proven Oil Reserves value                138 non-null    object 
 25  Manpower_Available Manpower value                          138 non-null    object 
 26  Manpower_Total Population value                            138 non-null    object 
 27  Geography_Total Square Land Area value                     138 non-null    object 
 28  Geography_Total Coastline Coverage value                   138 non-null    object 
 29  Geography_Total Waterway Coverage value                    138 non-null    object 
 30  Geography_Total Border Coverage value                      138 non-null    float64
dtypes: float64(7), int64(13), object(11)
memory usage: 33.5+ KB
In [40]:
df.select_dtypes("object")
Out[40]:
country Finances_defense spending budget value Finances_External Debt value Natural resources_Oil Production value Natural resources_Oil Consumption value Natural resources_Proven Oil Reserves value Manpower_Available Manpower value Manpower_Total Population value Geography_Total Square Land Area value Geography_Total Coastline Coverage value Geography_Total Waterway Coverage value
0 Afghanistan 12,00,00,00,000 2,84,00,00,000 0 5500 0 1,43,25,743 3,49,40,837 6,52,230 0 1200
1 Albania 25,00,00,000 9,50,50,00,000 16000 42500 16,83,00,000 15,19,438 30,57,220 28748 362 41
2 Algeria 13,00,00,00,000 6,26,00,00,000 13,06,000 3,25,000 12,20,00,00,000 2,07,41,263 4,16,57,488 23,81,741 998 0
3 Angola 7,00,00,00,000 42,08,00,00,000 16,66,000 82300 8,27,30,00,000 62,44,205 3,03,55,880 12,46,700 1600 1300
4 Argentina 4,20,00,00,000 2,14,90,00,00,000 4,79,400 6,85,000 2,18,50,00,000 2,01,79,430 4,46,94,198 27,80,400 4989 11000
5 Armenia 1,38,50,00,000 10,41,00,00,000 0 47500 0 16,96,085 30,38,217 29743 0 0
6 Australia 26,30,00,00,000 17,14,00,00,00,000 2,63,000 10,05,000 1,82,10,00,000 1,08,08,002 2,34,70,145 77,41,220 25760 2000
7 Austria 3,38,00,00,000 6,30,80,00,00,000 14260 2,15,000 4,30,00,000 40,17,691 87,93,370 83871 0 0
8 Azerbaijan 2,80,50,00,000 17,41,00,00,000 7,89,300 1,80,000 7,00,00,00,000 50,42,346 1,00,46,516 86600 713 0
9 Bahrain 1,41,50,00,000 52,15,00,00,000 45000 55000 12,46,00,000 8,06,505 14,22,659 760 161 0
10 Bangladesh 3,80,00,00,000 50,26,00,00,000 3666 1,12,000 2,80,00,000 7,89,13,289 15,94,53,001 1,43,998 580 8370
11 Belarus 62,37,02,800 39,92,00,00,000 32000 1,90,000 19,80,00,000 49,82,905 95,27,543 2,07,600 0 2500
12 Belgium 4,92,10,00,000 12,81,00,00,00,000 0 6,45,000 0 48,33,107 1,15,70,762 30528 67 2043
13 Bhutan 2,51,20,000 2,67,10,00,000 0 2000 0 1,76,808 7,66,397 38394 0 0
14 Bolivia 66,00,00,000 12,81,00,00,000 59330 60000 21,15,00,000 50,75,416 1,13,06,341 10,98,581 0 10000
15 Bosnia and Herzegovina 16,50,00,000 10,87,00,00,000 0 32500 0 23,94,632 38,49,891 51197 20 0
16 Botswana 45,00,00,000 2,18,70,00,000 0 16500 0 9,62,617 22,49,104 5,81,730 0 0
17 Brazil 27,80,00,00,000 5,47,40,00,00,000 26,22,000 30,20,000 13,00,00,00,000 10,77,64,996 20,88,46,892 85,14,877 7491 50000
18 Bulgaria 1,07,90,00,000 42,06,00,00,000 1000 1,15,000 1,50,00,000 32,78,916 70,57,504 1,10,880 354 470
19 Burkina Faso 13,00,00,000 3,05,60,00,000 0 10500 0 78,00,000 1,97,42,715 2,74,200 0 0
20 Cambodia 60,40,00,000 11,87,00,00,000 0 42500 0 81,20,963 1,64,49,519 1,81,035 443 3700
21 Cameroon 34,70,00,000 9,37,50,00,000 75720 32500 20,00,00,000 94,87,157 2,56,40,965 4,75,440 400 0
22 Canada 22,50,00,00,000 16,08,00,00,00,000 39,77,000 25,00,000 1,69,70,00,00,000 1,61,10,865 3,58,81,659 99,84,670 2,02,080 636
23 Central African Republic 2,00,00,000 77,99,00,000 0 4500 0 23,48,581 57,45,062 6,22,984 0 2800
24 Chad 20,00,00,000 1,72,40,00,000 1,28,000 1,00,000 1,50,00,00,000 60,30,834 1,58,33,116 12,84,000 0 0
25 Chile 4,25,00,00,000 1,83,40,00,00,000 3244 3,25,000 15,00,00,000 86,57,902 1,79,25,262 7,56,102 6435 12290
26 China 2,37,00,00,00,000 15,98,00,00,00,000 38,38,000 1,35,00,000 25,62,00,00,000 75,28,55,402 1,38,46,88,986 95,96,961 14500 1,10,000
27 Colombia 10,60,00,00,000 1,24,60,00,00,000 8,53,600 3,00,000 2,00,20,00,000 2,40,84,498 4,81,68,996 11,38,910 3208 24725
28 Croatia 80,00,00,000 48,10,00,00,000 14000 82000 7,10,00,000 20,88,265 42,70,480 56594 5835 785
29 Cuba 50,00,00,000 30,06,00,00,000 50000 1,52,000 12,40,00,000 59,80,621 1,11,16,396 1,10,860 3735 240
30 Czechia 2,96,90,00,000 2,05,20,00,00,000 2000 2,00,000 1,50,00,000 50,11,174 1,06,86,269 78867 0 664
31 Democratic Republic of the Congo 10,00,00,000 4,96,30,00,000 19160 10500 18,00,00,000 3,41,12,410 8,52,81,024 23,44,858 37 15000
32 Denmark 4,76,00,00,000 4,84,80,00,00,000 1,37,100 1,62,000 49,06,00,000 25,90,457 58,09,502 43094 7314 400
33 Dominican Republic 76,00,00,000 29,16,00,00,000 0 1,25,000 0 48,19,818 1,02,98,756 48320 1288 350
34 Ecuador 2,50,00,00,000 39,29,00,00,000 5,31,300 2,82,000 8,27,30,00,000 76,96,551 1,64,98,502 2,83,560 2237 1500
35 Egypt 11,20,00,00,000 77,47,00,00,000 5,89,400 8,32,000 4,40,00,00,000 4,29,46,553 9,94,13,317 10,01,450 2450 3500
36 El Salvador 16,70,00,000 15,51,00,00,000 0 45600 0 31,06,010 61,87,271 21041 307 0
37 Estonia 68,50,00,000 19,05,00,00,000 0 27500 0 5,96,014 12,44,288 45228 3794 335
38 Ethiopia 35,00,00,000 26,05,00,00,000 0 55000 4,28,000 4,11,43,474 10,83,86,391 11,04,300 0 1,04,300
39 Finland 3,57,00,00,000 1,50,60,00,00,000 0 2,05,000 0 23,07,420 55,37,364 3,38,145 1250 7842
40 France 41,50,00,00,000 53,60,00,00,00,000 15170 16,00,000 7,23,50,000 3,01,11,868 6,73,64,357 6,43,801 4853 8501
41 Gabon 8,30,00,000 6,49,00,00,000 1,98,800 16500 2,00,00,00,000 8,42,741 21,19,036 2,67,667 885 1600
42 Georgia 32,70,00,000 16,99,00,00,000 400 18500 3,50,00,000 22,49,744 49,26,087 69700 310 4349
43 Germany 50,00,00,00,000 53,26,00,00,00,000 43410 25,00,000 14,54,00,000 3,70,10,559 8,04,57,737 3,57,022 2389 7467
44 Ghana 71,00,00,000 22,14,00,00,000 1,51,000 65000 66,00,00,000 1,25,61,805 2,81,02,471 2,38,533 539 1293
45 Greece 4,84,40,00,000 5,06,60,00,00,000 2753 3,50,000 1,00,00,000 49,93,347 1,07,61,523 1,31,957 13676 6
46 Guatemala 24,00,00,000 22,92,00,00,000 9666 85000 8,30,70,000 70,63,622 1,65,81,273 1,08,889 400 990
47 Honduras 20,50,00,000 8,62,50,00,000 0 60000 0 41,04,696 91,82,766 1,12,090 832 465
48 Hungary 2,08,00,00,000 1,38,10,00,00,000 14000 1,45,000 2,51,00,000 46,18,081 98,25,704 1,03,000 0 1622
49 India 61,00,00,00,000 5,01,60,00,00,000 7,33,900 50,00,000 4,62,10,00,000 62,24,80,340 1,29,68,34,042 32,87,263 7000 14500
50 Indonesia 7,60,00,00,000 3,44,40,00,00,000 8,01,700 16,30,000 3,23,00,00,000 13,08,68,127 26,27,87,403 19,04,569 54716 21579
51 Iran 19,60,00,00,000 7,99,50,00,000 44,69,000 20,00,000 1,58,40,00,00,000 4,73,24,105 8,30,24,745 16,48,195 2440 850
52 Iraq 1,73,00,00,000 73,02,00,00,000 44,54,000 8,25,000 1,42,50,00,00,000 1,63,99,240 4,01,94,216 4,38,317 58 5279
53 Ireland 87,00,00,000 24,70,00,00,00,000 0 1,45,000 0 23,66,779 50,68,050 70273 1448 956
54 Israel 20,00,00,00,000 88,66,00,00,000 390 2,50,000 1,27,30,000 36,47,983 84,24,904 20770 273 0
55 Italy 27,80,00,00,000 24,44,00,00,00,000 77530 13,00,000 55,67,00,000 2,80,11,003 6,22,46,674 3,01,340 7600 2400
56 Ivory Coast 55,00,00,000 13,07,00,00,000 54000 25600 10,00,00,000 1,11,60,747 2,62,60,582 3,22,463 515 980
57 Japan 49,00,00,00,000 32,40,00,00,00,000 3841 40,00,000 4,41,20,000 5,38,73,803 12,61,68,156 3,77,915 29751 1770
58 Jordan 2,60,00,00,000 29,34,00,00,000 22 1,10,000 10,00,000 33,46,692 1,04,58,413 89342 26 540
59 Kazakhstan 4,00,00,00,000 1,67,50,00,00,000 17,77,000 2,45,000 30,00,00,00,000 85,85,003 1,87,44,548 27,24,900 26 0
60 Kenya 12,10,00,000 27,59,00,00,000 0 82000 0 1,96,00,998 4,83,97,527 5,80,367 536 0
61 Kuwait 6,83,10,00,000 47,24,00,00,000 27,53,000 3,45,000 1,01,50,00,00,000 16,41,971 29,16,467 17818 499 0
62 Kyrgyzstan 2,00,00,000 8,16,40,00,000 1000 17200 4,00,00,000 30,29,935 58,49,296 1,99,951 0 600
63 Laos 1,85,00,000 14,90,00,00,000 0 4500 0 32,48,143 72,34,171 2,36,800 0 4600
64 Latvia 72,40,00,000 40,02,00,00,000 0 32500 0 8,40,595 19,23,559 64589 498 300
65 Lebanon 2,50,00,00,000 39,30,00,00,000 0 1,10,000 0 21,35,026 61,00,075 10400 225 170
66 Liberia 1,30,00,000 1,03,60,00,000 0 4500 0 22,26,923 48,09,768 1,11,369 579 0
67 Libya 3,00,00,00,000 3,02,00,00,000 8,97,100 3,15,000 48,36,00,00,000 35,52,871 67,54,507 17,59,540 1770 0
68 Lithuania 1,10,70,00,000 34,48,00,00,000 2000 72400 1,20,00,000 17,79,322 27,93,284 65300 90 441
69 Madagascar 11,50,00,000 4,08,90,00,000 0 18500 0 1,01,45,026 2,56,83,610 5,87,040 4828 600
70 Malaysia 4,00,00,00,000 2,17,20,00,00,000 6,47,900 8,35,000 3,60,00,00,000 1,52,01,837 3,18,09,660 3,29,847 4675 7200
71 Mali 7,00,00,000 4,19,20,00,000 0 5500 0 59,91,557 1,84,29,893 12,40,192 0 0
72 Mauritania 5,02,50,000 4,15,00,00,000 4000 18500 2,00,00,000 15,55,374 38,40,429 10,30,700 754 0
73 Mexico 7,00,00,00,000 4,45,80,00,00,000 19,81,000 20,00,000 7,64,00,00,000 6,04,60,418 12,59,59,205 19,64,375 9330 2900
74 Moldova 3,00,00,000 6,54,90,00,000 0 16320 0 20,14,503 34,37,720 33851 0 558
75 Mongolia 15,50,00,000 25,33,00,00,000 20000 25000 0 18,18,609 31,03,428 15,64,116 0 580
76 Montenegro 6,50,00,000 2,51,60,00,000 0 4860 0 1,46,191 6,14,249 13812 294 0
77 Morocco 10,00,00,00,000 51,48,00,00,000 160 2,06,000 6,84,000 1,71,57,065 3,43,14,130 4,46,550 1835 0
78 Mozambique 24,50,00,000 10,91,00,00,000 0 22500 0 46,29,744 2,72,33,789 7,99,380 2470 460
79 Myanmar 2,65,00,00,000 6,59,40,00,000 12000 42600 13,90,00,000 3,02,58,643 5,56,22,506 6,76,578 1930 12800
80 Namibia 50,50,00,000 7,96,90,00,000 0 25000 0 5,82,642 25,33,224 8,24,292 1572 0
81 Nepal 21,30,00,000 5,84,90,00,000 0 20000 0 1,47,39,923 2,97,17,587 1,47,181 0 0
82 Netherlands 12,41,90,00,000 40,63,00,00,00,000 18170 8,40,000 11,32,00,000 78,20,960 1,71,51,228 41543 451 6237
83 New Zealand 4,30,00,00,000 91,62,00,00,000 31480 1,50,000 5,69,00,000 21,15,989 45,45,627 2,67,710 15134 0
84 Nicaragua 14,00,00,000 11,31,00,00,000 0 35000 0 30,30,436 60,85,213 1,30,370 910 2220
85 Niger 32,50,00,000 3,72,80,00,000 11000 6500 15,00,00,000 67,54,519 1,98,66,231 12,67,000 0 300
86 Nigeria 2,15,50,00,000 40,96,00,00,000 19,46,000 2,75,000 37,06,00,00,000 7,71,08,499 20,34,52,505 9,23,768 853 8600
87 North Korea 1,60,00,00,000 5,00,00,00,000 0 15500 0 1,30,45,878 2,53,81,085 1,20,538 2495 2250
88 North Macedonia 10,81,52,512 8,79,00,00,000 0 18500 0 10,53,116 21,18,945 25713 0 280
89 Norway 7,17,90,00,000 6,42,30,00,00,000 16,18,000 2,60,000 6,61,10,00,000 21,70,365 53,72,191 3,23,802 25148 1577
90 Oman 8,68,60,00,000 46,27,00,00,000 9,70,400 1,00,000 5,37,30,00,000 17,64,529 34,94,116 3,09,500 2092 0
91 Pakistan 11,40,00,00,000 82,19,00,00,000 89720 5,75,000 35,06,00,000 9,63,44,277 20,78,62,518 7,96,095 1046 25220
92 Panama 50,00,00,000 91,53,00,00,000 0 1,00,000 0 17,59,698 38,00,644 75420 2490 800
93 Paraguay 25,00,00,000 17,70,00,00,000 0 30000 0 33,72,366 70,25,763 4,06,752 0 3100
94 Peru 2,56,00,00,000 66,25,00,00,000 43520 2,10,000 47,30,00,000 1,53,52,302 3,13,31,228 12,85,216 2414 8808
95 Philippines 3,47,00,00,000 76,18,00,00,000 15000 3,20,000 13,85,00,000 5,18,87,757 10,58,93,381 3,00,000 36289 3219
96 Poland 12,00,00,00,000 2,41,00,00,00,000 20070 5,85,000 13,78,00,000 1,88,26,137 3,84,20,687 3,12,685 440 3997
97 Portugal 3,35,80,00,000 4,49,00,00,00,000 0 2,65,000 0 48,04,949 1,03,55,493 92090 1793 210
98 Qatar 6,00,00,00,000 1,67,80,00,00,000 15,00,000 1,90,000 25,24,00,00,000 6,12,164 23,63,569 11586 563 0
99 Republic of the Congo 71,50,00,000 4,60,50,00,000 2,44,200 1,85,000 1,60,00,00,000 19,38,754 50,62,021 3,42,000 169 1120
100 Romania 5,05,00,00,000 95,97,00,00,000 73740 2,40,000 60,00,00,000 1,10,07,501 2,14,57,116 2,38,391 225 1731
101 Russia 48,00,00,00,000 5,39,60,00,00,000 1,05,80,000 32,25,000 80,00,00,00,000 6,96,40,160 14,21,22,776 1,70,98,242 37653 1,02,000
102 Saudi Arabia 67,60,00,00,000 2,05,10,00,00,000 1,01,30,000 40,00,000 2,66,50,00,00,000 1,77,03,745 3,30,91,113 21,49,690 2640 0
103 Serbia 90,70,00,000 29,50,00,00,000 18740 75000 7,75,00,000 34,68,274 70,78,110 77474 0 587
104 Sierra Leone 7,55,00,000 1,61,50,00,000 0 9500 0 14,32,872 63,12,212 71740 402 800
105 Singapore 11,20,00,00,000 5,66,10,00,00,000 0 13,40,000 0 40,17,314 59,95,991 697 193 10
106 Slovakia 2,12,18,17,575 75,04,00,00,000 200 82000 90,00,000 27,76,970 54,45,040 49035 0 172
107 Slovenia 58,10,00,000 46,30,00,00,000 5 55000 0 10,02,714 21,02,126 20273 47 0
108 Somalia 6,22,00,000 5,30,00,00,000 0 6200 0 27,02,167 1,12,59,029 6,37,657 3025 0
109 South Africa 4,27,80,00,000 1,56,30,00,00,000 2000 6,05,000 1,50,00,000 2,62,50,220 5,53,80,210 12,19,090 2798 0
110 South Korea 44,00,00,00,000 3,84,60,00,00,000 0 28,00,000 0 2,57,09,049 5,14,18,097 99720 2413 1600
111 South Sudan 8,00,00,000 2,25,00,00,000 1,50,200 60000 3,75,00,00,000 52,45,155 1,02,04,581 6,44,329 0 0
112 Spain 15,10,00,00,000 20,94,00,00,00,000 2252 12,26,000 15,00,00,000 2,31,36,275 4,93,31,076 5,05,370 4964 1000
113 Sri Lanka 2,50,00,00,000 51,72,00,00,000 0 90000 0 1,09,27,071 2,25,76,592 65610 1340 160
114 Sudan 2,47,00,00,000 56,05,00,00,000 1,02,300 96800 5,00,00,00,000 2,40,61,430 4,31,20,843 18,61,484 853 1723
115 Suriname 6,30,00,000 1,70,00,00,000 17000 15100 8,39,80,000 1,32,740 5,97,927 1,63,820 386 1200
116 Sweden 6,32,69,23,600 9,39,90,00,00,000 0 3,20,000 0 41,16,808 1,00,40,995 4,50,295 3218 2052
117 Switzerland 5,00,00,00,000 16,64,00,00,00,000 0 2,60,000 0 36,32,250 82,92,809 41277 0 1299
118 Syria 1,80,00,00,000 4,98,90,00,000 14000 2,60,000 2,50,00,00,000 1,24,50,728 1,94,54,263 1,85,180 193 900
119 Taiwan 10,72,50,00,000 1,81,90,00,00,000 196 10,32,000 23,80,000 1,21,96,809 2,35,45,963 35980 1566 3720
120 Tajikistan 1,60,00,00,000 5,75,00,00,000 180 20500 1,20,00,000 40,95,924 86,04,882 1,43,100 0 200
121 Tanzania 22,30,00,000 17,66,00,00,000 0 46000 0 1,02,58,498 5,54,51,343 9,47,300 1424 0
122 Thailand 7,10,00,00,000 1,32,00,00,00,000 2,39,700 13,45,000 39,64,00,000 3,55,43,014 6,86,15,858 5,13,120 3219 4000
123 Tunisia 55,00,00,000 30,19,00,00,000 49170 90500 42,50,00,000 58,50,224 1,15,16,189 1,63,610 1148 0
124 Turkey 19,00,00,00,000 4,52,40,00,00,000 2,45,000 8,45,000 38,85,00,000 4,18,47,478 8,12,57,239 7,83,562 7200 1200
125 Turkmenistan 20,00,00,000 53,94,00,000 2,30,880 1,50,000 60,00,00,000 27,97,493 54,11,012 4,88,100 1768 1300
126 Uganda 93,50,00,000 10,80,00,00,000 0 17500 2,50,00,00,000 1,47,07,350 4,08,53,749 2,41,038 0 0
127 Ukraine 5,40,00,00,000 1,30,00,00,00,000 29650 3,25,000 39,50,00,000 2,21,95,911 4,39,52,299 6,03,550 2782 2150
128 United Arab Emirates 22,75,50,00,000 2,37,60,00,00,000 31,74,000 5,75,000 97,80,00,00,000 58,20,789 97,01,315 83600 1318 0
129 United Kingdom 55,10,00,00,000 81,26,00,00,00,000 9,10,500 16,00,000 2,56,40,00,000 2,99,48,413 6,51,05,246 2,43,610 12429 3200
130 United States 7,50,00,00,00,000 1,79,10,00,00,00,000 93,52,000 2,00,00,000 36,52,00,00,000 14,48,72,845 32,92,56,465 98,26,675 19924 41009
131 Uruguay 4,95,00,00,000 28,37,00,00,000 0 55600 0 15,49,878 33,69,299 1,76,215 660 1600
132 Uzbekistan 97,50,00,000 16,90,00,00,000 46070 1,42,000 59,40,00,000 1,59,12,566 3,00,23,709 4,47,400 420 1100
133 Venezuela 74,50,00,000 1,00,30,00,00,000 20,07,000 5,75,000 3,00,90,00,00,000 1,42,60,129 3,16,89,176 9,12,050 2800 7100
134 Vietnam 5,50,00,00,000 96,58,00,00,000 2,71,400 5,25,000 4,40,00,00,000 5,10,43,216 9,70,40,334 3,31,210 3444 17702
135 Yemen 1,40,00,00,000 7,06,80,00,000 12260 1,45,000 3,00,00,00,000 1,12,66,221 2,86,67,230 5,27,968 1906 0
136 Zambia 4,00,00,000 11,66,00,00,000 0 21000 0 61,66,905 1,64,45,079 7,52,618 0 2250
137 Zimbabwe 10,00,00,000 9,35,70,00,000 0 19500 0 55,84,086 1,40,30,368 3,90,757 0 0
In [41]:
df.select_dtypes("object")["Natural resources_Oil Production value"].str.replace(",","")
#cleaning numerical data that might be stored as strings
Out[41]:
0           NaN
1           NaN
2       1306000
3       1666000
4        479400
5           NaN
6        263000
7           NaN
8        789300
9           NaN
10          NaN
11          NaN
12          NaN
13          NaN
14          NaN
15          NaN
16          NaN
17      2622000
18          NaN
19          NaN
20          NaN
21          NaN
22      3977000
23          NaN
24       128000
25          NaN
26      3838000
27       853600
28          NaN
29          NaN
30          NaN
31          NaN
32       137100
33          NaN
34       531300
35       589400
36          NaN
37          NaN
38          NaN
39          NaN
40          NaN
41       198800
42          NaN
43          NaN
44       151000
45          NaN
46          NaN
47          NaN
48          NaN
49       733900
50       801700
51      4469000
52      4454000
53          NaN
54          NaN
55          NaN
56          NaN
57          NaN
58          NaN
59      1777000
60          NaN
61      2753000
62          NaN
63          NaN
64          NaN
65          NaN
66          NaN
67       897100
68          NaN
69          NaN
70       647900
71          NaN
72          NaN
73      1981000
74          NaN
75          NaN
76          NaN
77          NaN
78          NaN
79          NaN
80          NaN
81          NaN
82          NaN
83          NaN
84          NaN
85          NaN
86      1946000
87          NaN
88          NaN
89      1618000
90       970400
91          NaN
92          NaN
93          NaN
94          NaN
95          NaN
96          NaN
97          NaN
98      1500000
99       244200
100         NaN
101    10580000
102    10130000
103         NaN
104         NaN
105         NaN
106         NaN
107         NaN
108         NaN
109         NaN
110         NaN
111      150200
112         NaN
113         NaN
114      102300
115         NaN
116         NaN
117         NaN
118         NaN
119         NaN
120         NaN
121         NaN
122      239700
123         NaN
124      245000
125      230880
126         NaN
127         NaN
128     3174000
129      910500
130     9352000
131         NaN
132         NaN
133     2007000
134      271400
135         NaN
136         NaN
137         NaN
Name: Natural resources_Oil Production value, dtype: object
In [42]:
columns = df.select_dtypes("object").columns
columns
Out[42]:
Index(['country', 'Finances_defense spending budget value',
       'Finances_External Debt value',
       'Natural resources_Oil Production value',
       'Natural resources_Oil Consumption value',
       'Natural resources_Proven Oil Reserves value',
       'Manpower_Available Manpower value', 'Manpower_Total Population value',
       'Geography_Total Square Land Area value',
       'Geography_Total Coastline Coverage value',
       'Geography_Total Waterway Coverage value'],
      dtype='object')
In [43]:
for col in columns[1:]:
    df[col]  = df[col].astype("str")
    df[col]  = df.select_dtypes("object")[col].str.replace(',','')
    df[col]  = df[col].astype("float")
    # to clean and convert a range of columns to numerical (float) format.
In [44]:
 df.select_dtypes("object")
Out[44]:
country
0 Afghanistan
1 Albania
2 Algeria
3 Angola
4 Argentina
5 Armenia
6 Australia
7 Austria
8 Azerbaijan
9 Bahrain
10 Bangladesh
11 Belarus
12 Belgium
13 Bhutan
14 Bolivia
15 Bosnia and Herzegovina
16 Botswana
17 Brazil
18 Bulgaria
19 Burkina Faso
20 Cambodia
21 Cameroon
22 Canada
23 Central African Republic
24 Chad
25 Chile
26 China
27 Colombia
28 Croatia
29 Cuba
30 Czechia
31 Democratic Republic of the Congo
32 Denmark
33 Dominican Republic
34 Ecuador
35 Egypt
36 El Salvador
37 Estonia
38 Ethiopia
39 Finland
40 France
41 Gabon
42 Georgia
43 Germany
44 Ghana
45 Greece
46 Guatemala
47 Honduras
48 Hungary
49 India
50 Indonesia
51 Iran
52 Iraq
53 Ireland
54 Israel
55 Italy
56 Ivory Coast
57 Japan
58 Jordan
59 Kazakhstan
60 Kenya
61 Kuwait
62 Kyrgyzstan
63 Laos
64 Latvia
65 Lebanon
66 Liberia
67 Libya
68 Lithuania
69 Madagascar
70 Malaysia
71 Mali
72 Mauritania
73 Mexico
74 Moldova
75 Mongolia
76 Montenegro
77 Morocco
78 Mozambique
79 Myanmar
80 Namibia
81 Nepal
82 Netherlands
83 New Zealand
84 Nicaragua
85 Niger
86 Nigeria
87 North Korea
88 North Macedonia
89 Norway
90 Oman
91 Pakistan
92 Panama
93 Paraguay
94 Peru
95 Philippines
96 Poland
97 Portugal
98 Qatar
99 Republic of the Congo
100 Romania
101 Russia
102 Saudi Arabia
103 Serbia
104 Sierra Leone
105 Singapore
106 Slovakia
107 Slovenia
108 Somalia
109 South Africa
110 South Korea
111 South Sudan
112 Spain
113 Sri Lanka
114 Sudan
115 Suriname
116 Sweden
117 Switzerland
118 Syria
119 Taiwan
120 Tajikistan
121 Tanzania
122 Thailand
123 Tunisia
124 Turkey
125 Turkmenistan
126 Uganda
127 Ukraine
128 United Arab Emirates
129 United Kingdom
130 United States
131 Uruguay
132 Uzbekistan
133 Venezuela
134 Vietnam
135 Yemen
136 Zambia
137 Zimbabwe

Drop the features that not affect military power¶

  • Hint-1, Georeferences not proper features
In [45]:
df.columns
Out[45]:
Index(['country', 'Military Strength Power Index',
       'Airforce Strength_Aircraft Strength value',
       'Airforce Strength_Fighter/Interceptor Strength value',
       'Airforce Strength_Attack Aircraft Strength value',
       'Airforce Strength_Transport Aircraft Fleet Strength value',
       'Airforce Strength_Trainer Aircraft Fleet value',
       'Airforce Strength_Helicopter Fleet Strength value',
       'Airforce Strength_Attack Helicopter Fleet Strength value',
       'Land Strength_Tank Strength value',
       'Land Strength_AFV/APC Strength value',
       'Land Strength_Self-Propelled Artillery Strength value',
       'Land Strength_Towed Artillery Strength value',
       'Land Strength_Rocket Projector Strength value',
       'Navy Strength_Navy Fleet Strengths value',
       'Navy Strength_Aircraft Carrier Fleet Strength value',
       'Navy Strength_Submarine Fleet Strength value',
       'Navy Strength_Destroyer Fleet Strength value',
       'Navy Strength_Frigate Fleet Strength value',
       'Finances_defense spending budget value',
       'Finances_External Debt value', 'Logistics_Airport Totals value',
       'Natural resources_Oil Production value',
       'Natural resources_Oil Consumption value',
       'Natural resources_Proven Oil Reserves value',
       'Manpower_Available Manpower value', 'Manpower_Total Population value',
       'Geography_Total Square Land Area value',
       'Geography_Total Coastline Coverage value',
       'Geography_Total Waterway Coverage value',
       'Geography_Total Border Coverage value'],
      dtype='object')
In [46]:
df.drop(['Geography_Total Square Land Area value',
               'Geography_Total Coastline Coverage value',
               'Geography_Total Waterway Coverage value',
               'Geography_Total Border Coverage value'],axis=1,inplace=True)

Visualy inspect the some features¶

In [47]:
fig = px.bar(df,x= "country" , y = value_df["Airforce Strength_Aircraft Strength value"])
fig.show()
In [48]:
fig = px.box(df, x = value_df["Airforce Strength_Aircraft Strength value"],
             hover_name=value_df["country"])
fig.show()
In [49]:
fig = px.bar(df,x= "country" , y = value_df['Navy Strength_Navy Fleet Strengths value'])
fig.show()
In [50]:
fig = px.box(df, x = value_df["Navy Strength_Navy Fleet Strengths value"],
             hover_name=value_df["country"])

fig.show()
In [51]:
fig = px.bar(df,x= "country" , y = value_df['Land Strength_Tank Strength value'])
fig.show()
In [52]:
fig = px.box(df, x = value_df["Land Strength_Tank Strength value"],
             hover_name=value_df["country"])

fig.show()
In [53]:
fig = go.Figure()
fig.add_trace(go.Box(x=df["Finances_External Debt value"],
              hovertext=df["country"],
              name = "Finances_External Debt value")
             )
fig.add_trace(go.Box(x=df["Finances_defense spending budget value"],
                     hovertext=df["country"],
                    name = "Finances_defense spending budget value")
             )

fig.show()

Decriptive statistics¶

In [54]:
df.describe().T
Out[54]:
count mean std min 25% 50% 75% max
Military Strength Power Index 138.0 1.460716e+00 1.324018e+00 6.060000e-02 5.748000e-01 1.034100e+00 2.021525e+00 1.016810e+01
Airforce Strength_Aircraft Strength value 138.0 3.884710e+02 1.231982e+03 0.000000e+00 3.300000e+01 1.110000e+02 2.902500e+02 1.326400e+04
Airforce Strength_Fighter/Interceptor Strength value 138.0 8.156522e+01 2.303248e+02 0.000000e+00 0.000000e+00 1.700000e+01 6.050000e+01 2.085000e+03
Airforce Strength_Attack Aircraft Strength value 138.0 2.576087e+01 9.452822e+01 0.000000e+00 0.000000e+00 0.000000e+00 1.575000e+01 7.420000e+02
Airforce Strength_Transport Aircraft Fleet Strength value 138.0 3.023188e+01 9.233044e+01 0.000000e+00 3.000000e+00 9.000000e+00 2.600000e+01 9.450000e+02
Airforce Strength_Trainer Aircraft Fleet value 138.0 8.283333e+01 2.408037e+02 0.000000e+00 4.250000e+00 2.600000e+01 7.925000e+01 2.643000e+03
Airforce Strength_Helicopter Fleet Strength value 138.0 1.540652e+02 5.201836e+02 0.000000e+00 1.525000e+01 4.400000e+01 1.267500e+02 5.768000e+03
Airforce Strength_Attack Helicopter Fleet Strength value 138.0 2.562319e+01 9.732609e+01 0.000000e+00 0.000000e+00 2.000000e+00 1.775000e+01 9.670000e+02
Land Strength_Tank Strength value 138.0 6.465652e+02 1.515464e+03 0.000000e+00 1.925000e+01 1.530000e+02 4.362500e+02 1.295000e+04
Land Strength_AFV/APC Strength value 138.0 2.485696e+03 5.410546e+03 0.000000e+00 2.502500e+02 7.345000e+02 2.000000e+03 3.925300e+04
Land Strength_Self-Propelled Artillery Strength value 138.0 2.121594e+02 6.880290e+02 0.000000e+00 0.000000e+00 2.300000e+01 9.725000e+01 6.083000e+03
Land Strength_Towed Artillery Strength value 138.0 3.939783e+02 8.057817e+02 0.000000e+00 2.425000e+01 1.080000e+02 2.965000e+02 4.465000e+03
Land Strength_Rocket Projector Strength value 138.0 1.569348e+02 4.843810e+02 0.000000e+00 0.000000e+00 2.400000e+01 9.975000e+01 3.860000e+03
Navy Strength_Navy Fleet Strengths value 138.0 7.436232e+01 1.410382e+02 0.000000e+00 3.000000e+00 2.750000e+01 6.800000e+01 9.840000e+02
Navy Strength_Aircraft Carrier Fleet Strength value 138.0 3.043478e-01 1.798656e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 2.000000e+01
Navy Strength_Submarine Fleet Strength value 138.0 3.978261e+00 1.260313e+01 0.000000e+00 0.000000e+00 0.000000e+00 2.000000e+00 8.300000e+01
Navy Strength_Destroyer Fleet Strength value 138.0 1.710145e+00 9.154954e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 9.100000e+01
Navy Strength_Frigate Fleet Strength value 138.0 2.891304e+00 5.969123e+00 0.000000e+00 0.000000e+00 0.000000e+00 4.000000e+00 5.200000e+01
Finances_defense spending budget value 138.0 1.399363e+10 6.731189e+10 1.300000e+07 3.255000e+08 2.100909e+09 6.957750e+09 7.500000e+11
Finances_External Debt value 138.0 5.194983e+11 1.847252e+12 5.394000e+08 9.361500e+09 3.997000e+10 1.830250e+11 1.791000e+13
Logistics_Airport Totals value 138.0 2.900435e+02 1.212967e+03 2.000000e+00 3.350000e+01 6.800000e+01 1.507500e+02 1.351300e+04
Natural resources_Oil Production value 138.0 5.855524e+05 1.667139e+06 0.000000e+00 0.000000e+00 1.313000e+04 2.228600e+05 1.058000e+07
Natural resources_Oil Consumption value 138.0 7.020187e+05 2.168810e+06 2.000000e+03 3.250000e+04 1.335000e+05 3.487500e+05 2.000000e+07
Natural resources_Proven Oil Reserves value 138.0 1.194412e+10 4.275090e+10 0.000000e+00 0.000000e+00 8.028500e+07 2.001500e+09 3.009000e+11
Manpower_Available Manpower value 138.0 2.544297e+07 8.450698e+07 1.327400e+05 2.618384e+06 5.986089e+06 1.756708e+07 7.528554e+08
Manpower_Total Population value 138.0 5.318058e+07 1.651090e+08 5.979270e+05 5.819450e+06 1.613910e+07 4.068887e+07 1.384689e+09
In [55]:
plt.figure(figsize=(15, 10))
sns.heatmap(df.corr(), annot=True);
In [56]:
fig = px.imshow(df.corr(), width=1000, height=800)
fig.show()

Data Preprocessing¶

In [57]:
X = df.drop(["country"], axis=1)
In [58]:
scaler = StandardScaler()
X = scaler.fit_transform(X)

Modelling¶

Hopkins Test¶

The Hopkins statistic tests the spatial randomness of your data. It answers the question: "Is my data randomly distributed, or does it tend to have clusters?"

The algorithm essentially works like this:

  1. It randomly selects a certain number (let's say n) of real data points from your dataset X. For each of these real data points, it finds the distance to its nearest neighbor in the remaining data. Let these distances be $u_1, u_2, ..., u_n$.
  2. It then generates the same number (n) of artificial random data points within the range of your original data. For each of these artificial points, it finds the distance to its nearest neighbor in the original data X. Let these distances be $w_1, w_2, ..., w_n$.
  3. The Hopkins statistic (H) is then calculated as: $H = \frac{\sum_{i=1}^{n} w_i}{\sum_{i=1}^{n} u_i + \sum_{i=1}^{n} w_i}$

Assess the clusterability of a dataset. A score between 0 and 1, a score around 0.5 express no clusterability, a score tending to 1 express an uniform distrubution so clustering can't be useful and 0 express not an uniform distrubution hence clusterering can be useful.

In [59]:
hopkins(X, X.shape[0])
Out[59]:
0.07456565327454581

Clustering with K-means¶

Elbow Method¶

We use this method to find optimal k value by looking up to break point of graph.¶

In [60]:
ssd = [] # sum of squared distance

K = range(2,10)

for k in K:
    model = KMeans(n_clusters=k)
    model.fit(X)
    ssd.append(model.inertia_)
# Lower inertia generally indicates that the data points within each cluster are closer to their cluster's centroid. 
#This suggests that the clusters are more compact and internally similar. Ideally, you want clusters that are tightly grouped.
In [61]:
ssd
Out[61]:
[1908.9606723107413,
 1293.9804803548773,
 1033.3079025228537,
 871.3919363344244,
 726.3028244291534,
 596.6149495076263,
 498.02807094870917,
 438.45503320650994]
In [62]:
plt.plot(K, ssd, "bo-")
plt.xlabel("Different k values")
plt.ylabel("inertia-error") 
plt.title("elbow method")
Out[62]:
Text(0.5, 1.0, 'elbow method')
In [63]:
pd.Series(ssd).diff()
Out[63]:
0           NaN
1   -614.980192
2   -260.672578
3   -161.915966
4   -145.089112
5   -129.687875
6    -98.586879
7    -59.573038
dtype: float64
In [64]:
df1_diff =pd.DataFrame(-pd.Series(ssd).diff()).rename(index = lambda x : x+1)
df1_diff
Out[64]:
0
1 NaN
2 614.980192
3 260.672578
4 161.915966
5 145.089112
6 129.687875
7 98.586879
8 59.573038
In [65]:
df1_diff.plot(kind='bar');
In [66]:
kmeans = KMeans()
visu = KElbowVisualizer(kmeans, k = (2,10))
visu.fit(X)
visu.poof();

Silhouette analysis¶

Silhouette analysis gives you a sense of how well each data point fits into its assigned cluster compared to other clusters, the more it closes to 1, the more It gives you a sense of how well each data point fits into its assigned cluster compared to other clusters.

In [67]:
silhouette_score(X, kmeans.labels_)
Out[67]:
0.2752576078156073
In [68]:
range_n_clusters = range(2,9)
for num_clusters in range_n_clusters:
    # intialise kmeans
    kmeans = KMeans(n_clusters=num_clusters, random_state=101)
    kmeans.fit(X)
    cluster_labels = kmeans.labels_
    # silhouette score
    silhouette_avg = silhouette_score(X, cluster_labels)
    print(f"For n_clusters={num_clusters}, the silhouette score is {silhouette_avg}")
For n_clusters=2, the silhouette score is 0.8645343457024808
For n_clusters=3, the silhouette score is 0.8021734897138548
For n_clusters=4, the silhouette score is 0.6431108598819103
For n_clusters=5, the silhouette score is 0.4970990294193429
For n_clusters=6, the silhouette score is 0.5059656486613938
For n_clusters=7, the silhouette score is 0.4861811103301968
For n_clusters=8, the silhouette score is 0.4388025628710392

Model Building and label visualisation¶

In [69]:
model = KMeans(n_clusters=3)
model.fit(X)
Out[69]:
KMeans(n_clusters=3)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
KMeans(n_clusters=3)
In [70]:
model.inertia_
Out[70]:
1318.9857111090864
In [71]:
model.labels_
Out[71]:
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0])
In [72]:
df["cluster"] = model.labels_ # label değerleri cluster sütunu olarak atıyoruz.
In [73]:
plt.figure(figsize=(10,5))
sns.scatterplot(data=df,  # You need to pass your DataFrame using the 'data=' keyword
                x="Airforce Strength_Aircraft Strength value",
                y="Navy Strength_Navy Fleet Strengths value",
                hue="cluster",
                palette="viridis");
In [74]:
fig = px.scatter_3d(x=df["Airforce Strength_Aircraft Strength value"],
                   y=df["Finances_defense spending budget value"],
                   z=df["Finances_External Debt value"],
                   color=df.cluster,
                   labels = {"x": "Airforce Strength_Aircraft Strength value",
                             "y": "Finances_defense spending budget value",
                             "z": "Finances_External Debt value"},
                   hover_name=df["country"])

fig.show()
In [75]:
centroids = model.cluster_centers_

plt.scatter(X[:,18], X[:,19], c = df.cluster, s = 50, cmap = "viridis")
plt.scatter(centroids[:,18], centroids[:,19], c = "black", s = 200, alpha=0.5);
In [76]:
plt.figure(figsize=(8,5))
plt.title("Cluster Count")
ax1 = sns.countplot(x = df.cluster)

for p in ax1.patches:
    ax1.annotate(
        text=f"{p.get_height():1.0f}",  # Changed 's' to 'text'
        xy=(p.get_x() + p.get_width() / 2., p.get_height()),
        xycoords='data',
        ha='center',
        va='center',
        fontsize=11,
        color='black',
        xytext=(0,7),
        textcoords='offset points',
        clip_on=True
    )
plt.show()
In [77]:
df[df["cluster"] == 0]
Out[77]:
country Military Strength Power Index Airforce Strength_Aircraft Strength value Airforce Strength_Fighter/Interceptor Strength value Airforce Strength_Attack Aircraft Strength value Airforce Strength_Transport Aircraft Fleet Strength value Airforce Strength_Trainer Aircraft Fleet value Airforce Strength_Helicopter Fleet Strength value Airforce Strength_Attack Helicopter Fleet Strength value Land Strength_Tank Strength value Land Strength_AFV/APC Strength value Land Strength_Self-Propelled Artillery Strength value Land Strength_Towed Artillery Strength value Land Strength_Rocket Projector Strength value Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value Finances_defense spending budget value Finances_External Debt value Logistics_Airport Totals value Natural resources_Oil Production value Natural resources_Oil Consumption value Natural resources_Proven Oil Reserves value Manpower_Available Manpower value Manpower_Total Population value cluster
0 Afghanistan 1.3444 260 0 25 30 0 187 0 0 1062 0 176 50 0.0 0.0 0.0 0.0 0.0 1.200000e+10 2.840000e+09 43 0.0 5500.0 0.000000e+00 14325743.0 3.494084e+07 0
1 Albania 2.3137 19 0 0 0 0 19 0 0 467 0 0 0 38.0 0.0 0.0 0.0 0.0 2.500000e+08 9.505000e+09 4 16000.0 42500.0 1.683000e+08 1519438.0 3.057220e+06 0
2 Algeria 0.4659 551 103 22 59 87 257 45 880 7361 320 240 316 201.0 0.0 6.0 0.0 5.0 1.300000e+10 6.260000e+09 157 1306000.0 325000.0 1.220000e+10 20741263.0 4.165749e+07 0
3 Angola 0.8379 295 72 18 30 47 126 15 379 595 28 357 115 57.0 0.0 0.0 0.0 0.0 7.000000e+09 4.208000e+10 176 1666000.0 82300.0 8.273000e+09 6244205.0 3.035588e+07 0
4 Argentina 0.6521 227 24 7 9 64 100 0 370 739 83 172 26 49.0 0.0 2.0 4.0 0.0 4.200000e+09 2.149000e+11 1138 479400.0 685000.0 2.185000e+09 20179430.0 4.469420e+07 0
5 Armenia 2.1251 64 0 9 3 13 37 20 110 748 38 150 68 0.0 0.0 0.0 0.0 0.0 1.385000e+09 1.041000e+10 11 0.0 47500.0 0.000000e+00 1696085.0 3.038217e+06 0
6 Australia 0.3225 464 82 6 38 174 133 22 59 3051 0 54 0 48.0 2.0 6.0 2.0 8.0 2.630000e+10 1.714000e+12 480 263000.0 1005000.0 1.821000e+09 10808002.0 2.347014e+07 0
7 Austria 0.9568 120 15 0 11 32 62 0 56 467 33 0 0 0.0 0.0 0.0 0.0 0.0 3.380000e+09 6.308000e+11 52 14260.0 215000.0 4.300000e+07 4017691.0 8.793370e+06 0
8 Azerbaijan 0.9463 147 17 12 1 29 88 17 570 1451 187 227 162 31.0 0.0 4.0 0.0 1.0 2.805000e+09 1.741000e+10 37 789300.0 180000.0 7.000000e+09 5042346.0 1.004652e+07 0
9 Bahrain 1.8547 109 17 0 2 37 65 22 180 843 33 26 17 39.0 0.0 0.0 0.0 1.0 1.415000e+09 5.215000e+10 4 45000.0 55000.0 1.246000e+08 806505.0 1.422659e+06 0
10 Bangladesh 0.7066 177 44 0 11 57 67 0 276 1230 18 419 72 112.0 0.0 2.0 0.0 8.0 3.800000e+09 5.026000e+10 18 3666.0 112000.0 2.800000e+07 78913289.0 1.594530e+08 0
11 Belarus 0.8179 202 39 68 4 28 63 21 532 1560 482 228 238 0.0 0.0 0.0 0.0 0.0 6.237028e+08 3.992000e+10 65 32000.0 190000.0 1.980000e+08 4982905.0 9.527543e+06 0
12 Belgium 1.0499 148 43 0 12 64 29 0 0 984 0 0 0 17.0 0.0 0.0 0.0 2.0 4.921000e+09 1.281000e+12 41 0.0 645000.0 0.000000e+00 4833107.0 1.157076e+07 0
13 Bhutan 10.1681 2 0 0 0 0 2 0 0 27 0 0 0 0.0 0.0 0.0 0.0 0.0 2.512000e+07 2.671000e+09 2 0.0 2000.0 0.000000e+00 176808.0 7.663970e+05 0
14 Bolivia 0.9942 69 0 0 14 23 38 0 54 137 0 86 0 0.0 0.0 0.0 0.0 0.0 6.600000e+08 1.281000e+10 855 59330.0 60000.0 2.115000e+08 5075416.0 1.130634e+07 0
15 Bosnia and Herzegovina 3.8586 19 0 0 0 0 19 0 320 332 24 837 143 0.0 0.0 0.0 0.0 0.0 1.650000e+08 1.087000e+10 24 0.0 32500.0 0.000000e+00 2394632.0 3.849891e+06 0
16 Botswana 2.0582 45 10 0 11 8 16 0 55 245 0 30 20 0.0 0.0 0.0 0.0 0.0 4.500000e+08 2.187000e+09 74 0.0 16500.0 0.000000e+00 962617.0 2.249104e+06 0
17 Brazil 0.1988 715 43 78 126 198 242 12 437 1820 132 565 84 112.0 0.0 6.0 0.0 7.0 2.780000e+10 5.474000e+11 4093 2622000.0 3020000.0 1.300000e+10 107764996.0 2.088469e+08 0
18 Bulgaria 0.8916 63 13 4 5 20 25 2 710 2000 506 350 192 29.0 0.0 0.0 0.0 4.0 1.079000e+09 4.206000e+10 68 1000.0 115000.0 1.500000e+07 3278916.0 7.057504e+06 0
19 Burkina Faso 1.9009 16 0 3 1 4 8 2 0 350 0 0 0 0.0 0.0 0.0 0.0 0.0 1.300000e+08 3.056000e+09 23 0.0 10500.0 0.000000e+00 7800000.0 1.974272e+07 0
20 Cambodia 2.0557 22 0 0 5 0 17 0 263 340 0 150 570 27.0 0.0 0.0 0.0 0.0 6.040000e+08 1.187000e+10 16 0.0 42500.0 0.000000e+00 8120963.0 1.644952e+07 0
21 Cameroon 1.9902 29 0 0 6 6 15 0 0 222 8 61 20 64.0 0.0 0.0 0.0 0.0 3.470000e+08 9.375000e+09 33 75720.0 32500.0 2.000000e+08 9487157.0 2.564096e+07 0
22 Canada 0.3712 385 62 0 38 135 145 0 80 1973 0 133 0 64.0 0.0 4.0 0.0 12.0 2.250000e+10 1.608000e+12 1467 3977000.0 2500000.0 1.697000e+11 16110865.0 3.588166e+07 0
23 Central African Republic 3.2889 3 0 0 2 0 1 0 4 55 0 20 0 0.0 0.0 0.0 0.0 0.0 2.000000e+07 7.799000e+08 39 0.0 4500.0 0.000000e+00 2348581.0 5.745062e+06 0
24 Chad 1.6383 35 0 6 6 4 17 3 60 372 10 51 10 0.0 0.0 0.0 0.0 0.0 2.000000e+08 1.724000e+09 59 128000.0 100000.0 1.500000e+09 6030834.0 1.583312e+07 0
25 Chile 0.7668 282 44 0 30 93 92 0 300 1430 48 158 10 69.0 0.0 4.0 0.0 10.0 4.250000e+09 1.834000e+11 481 3244.0 325000.0 1.500000e+08 8657902.0 1.792526e+07 0
27 Colombia 0.6045 469 21 38 76 80 224 0 0 595 6 110 0 453.0 0.0 11.0 0.0 4.0 1.060000e+10 1.246000e+11 836 853600.0 300000.0 2.002000e+09 24084498.0 4.816900e+07 0
28 Croatia 1.0183 78 12 0 0 27 47 0 72 604 24 151 105 28.0 0.0 0.0 0.0 0.0 8.000000e+08 4.810000e+10 69 14000.0 82000.0 7.100000e+07 2088265.0 4.270480e+06 0
29 Cuba 1.2208 80 38 0 2 26 14 4 1180 670 100 150 100 12.0 0.0 0.0 0.0 2.0 5.000000e+08 3.006000e+10 133 50000.0 152000.0 1.240000e+08 5980621.0 1.111640e+07 0
30 Czechia 0.5531 95 12 16 8 15 44 15 116 682 86 85 0 0.0 0.0 0.0 0.0 0.0 2.969000e+09 2.052000e+11 128 2000.0 200000.0 1.500000e+07 5011174.0 1.068627e+07 0
31 Democratic Republic of the Congo 1.1389 53 2 4 13 0 34 8 175 100 16 120 57 20.0 0.0 0.0 0.0 0.0 1.000000e+08 4.963000e+09 198 19160.0 10500.0 1.800000e+08 34112410.0 8.528102e+07 0
32 Denmark 0.7878 113 33 0 4 38 35 0 57 972 22 0 0 74.0 0.0 0.0 0.0 9.0 4.760000e+09 4.848000e+11 80 137100.0 162000.0 4.906000e+08 2590457.0 5.809502e+06 0
33 Dominican Republic 2.7504 49 0 8 10 4 28 0 6 20 0 20 0 33.0 0.0 0.0 0.0 0.0 7.600000e+08 2.916000e+10 36 0.0 125000.0 0.000000e+00 4819818.0 1.029876e+07 0
34 Ecuador 1.0062 108 9 0 22 29 50 0 232 413 15 102 26 19.0 0.0 2.0 0.0 2.0 2.500000e+09 3.929000e+10 432 531300.0 282000.0 8.273000e+09 7696551.0 1.649850e+07 0
35 Egypt 0.1872 1054 215 88 59 387 294 81 4295 11700 1139 2189 1084 316.0 2.0 8.0 0.0 7.0 1.120000e+10 7.747000e+10 83 589400.0 832000.0 4.400000e+09 42946553.0 9.941332e+07 0
36 El Salvador 3.1291 51 0 15 2 3 31 0 0 125 0 70 0 4.0 0.0 0.0 0.0 0.0 1.670000e+08 1.551000e+10 68 0.0 45600.0 0.000000e+00 3106010.0 6.187271e+06 0
37 Estonia 2.5893 7 0 0 2 5 4 0 0 181 18 66 0 6.0 0.0 0.0 0.0 0.0 6.850000e+08 1.905000e+10 18 0.0 27500.0 0.000000e+00 596014.0 1.244288e+06 0
38 Ethiopia 0.8581 86 24 0 9 20 33 8 400 114 67 650 183 0.0 0.0 0.0 0.0 0.0 3.500000e+08 2.605000e+10 57 0.0 55000.0 4.280000e+05 41143474.0 1.083864e+08 0
39 Finland 0.8498 194 55 0 11 105 127 0 200 2050 100 627 75 246.0 0.0 0.0 0.0 0.0 3.570000e+09 1.506000e+11 148 0.0 205000.0 0.000000e+00 2307420.0 5.537364e+06 0
40 France 0.1702 1229 269 0 121 187 589 62 528 6028 109 12 13 180.0 4.0 9.0 11.0 11.0 4.150000e+10 5.360000e+12 464 15170.0 1600000.0 7.235000e+07 30111868.0 6.736436e+07 0
41 Gabon 3.3736 23 6 0 2 0 15 0 0 70 0 16 0 10.0 0.0 0.0 0.0 0.0 8.300000e+07 6.490000e+09 44 198800.0 16500.0 2.000000e+09 842741.0 2.119036e+06 0
42 Georgia 1.6679 66 0 10 2 12 38 9 143 950 69 133 51 9.0 0.0 0.0 0.0 0.0 3.270000e+08 1.699000e+10 22 400.0 18500.0 3.500000e+07 2249744.0 4.926087e+06 0
43 Germany 0.2186 712 128 74 71 26 386 56 245 4583 108 0 38 80.0 0.0 6.0 0.0 9.0 5.000000e+10 5.326000e+12 539 43410.0 2500000.0 1.454000e+08 37010559.0 8.045774e+07 0
44 Ghana 2.0554 24 0 0 3 6 13 0 0 150 0 0 0 20.0 0.0 0.0 0.0 0.0 7.100000e+08 2.214000e+10 10 151000.0 65000.0 6.600000e+08 12561805.0 2.810247e+07 0
45 Greece 0.5311 566 187 0 15 143 231 29 1355 3691 547 463 152 116.0 0.0 11.0 0.0 13.0 4.844000e+09 5.066000e+11 77 2753.0 350000.0 1.000000e+07 4993347.0 1.076152e+07 0
46 Guatemala 1.8302 33 0 4 8 6 15 0 12 135 0 106 0 26.0 0.0 0.0 0.0 0.0 2.400000e+08 2.292000e+10 291 9666.0 85000.0 8.307000e+07 7063622.0 1.658127e+07 0
47 Honduras 2.0943 46 3 9 11 10 12 0 19 92 0 176 0 59.0 0.0 0.0 0.0 0.0 2.050000e+08 8.625000e+09 103 0.0 60000.0 0.000000e+00 4104696.0 9.182766e+06 0
48 Hungary 0.8215 47 12 0 5 6 24 8 30 944 0 300 0 0.0 0.0 0.0 0.0 0.0 2.080000e+09 1.381000e+11 41 14000.0 145000.0 2.510000e+07 4618081.0 9.825704e+06 0
49 India 0.0953 2123 538 172 250 359 722 23 4292 8686 235 4060 266 285.0 1.0 16.0 10.0 13.0 6.100000e+10 5.016000e+11 346 733900.0 5000000.0 4.621000e+09 622480340.0 1.296834e+09 0
50 Indonesia 0.2544 462 41 39 54 109 177 16 313 1178 153 366 36 282.0 0.0 5.0 0.0 7.0 7.600000e+09 3.444000e+11 673 801700.0 1630000.0 3.230000e+09 130868127.0 2.627874e+08 0
51 Iran 0.2191 509 155 23 62 94 100 12 2056 4300 570 2088 1935 398.0 0.0 34.0 0.0 7.0 1.960000e+10 7.995000e+09 319 4469000.0 2000000.0 1.584000e+11 47324105.0 8.302474e+07 0
52 Iraq 0.7911 348 26 33 16 102 186 40 309 4739 44 120 30 60.0 0.0 0.0 0.0 0.0 1.730000e+09 7.302000e+10 102 4454000.0 825000.0 1.425000e+11 16399240.0 4.019422e+07 0
53 Ireland 1.9481 19 0 0 0 8 8 0 0 124 0 0 0 8.0 0.0 0.0 0.0 0.0 8.700000e+08 2.470000e+12 40 0.0 145000.0 0.000000e+00 2366779.0 5.068050e+06 0
54 Israel 0.3111 589 259 18 15 154 146 48 2760 10275 650 300 100 65.0 0.0 5.0 0.0 0.0 2.000000e+10 8.866000e+10 47 390.0 250000.0 1.273000e+07 3647983.0 8.424904e+06 0
55 Italy 0.2111 860 99 110 38 185 439 59 200 6947 54 108 21 249.0 2.0 8.0 4.0 12.0 2.780000e+10 2.444000e+12 129 77530.0 1300000.0 5.567000e+08 28011003.0 6.224667e+07 0
56 Ivory Coast 2.0236 8 0 0 4 0 4 3 15 109 0 7 6 10.0 0.0 0.0 0.0 0.0 5.500000e+08 1.307000e+10 27 54000.0 25600.0 1.000000e+08 11160747.0 2.626058e+07 0
57 Japan 0.1501 1561 279 12 60 427 637 119 1004 3130 238 500 99 155.0 4.0 20.0 40.0 0.0 4.900000e+10 3.240000e+12 175 3841.0 4000000.0 4.412000e+07 53873803.0 1.261682e+08 0
58 Jordan 1.1441 278 44 4 16 75 146 47 1313 2897 461 72 88 37.0 0.0 0.0 0.0 0.0 2.600000e+09 2.934000e+10 18 22.0 110000.0 1.000000e+06 3346692.0 1.045841e+07 0
59 Kazakhstan 0.9098 222 76 39 18 18 71 18 650 800 0 300 100 15.0 0.0 0.0 0.0 0.0 4.000000e+09 1.675000e+11 96 1777000.0 245000.0 3.000000e+10 8585003.0 1.874455e+07 0
60 Kenya 1.5287 150 17 0 20 32 79 0 76 479 30 25 0 19.0 0.0 0.0 0.0 0.0 1.210000e+08 2.759000e+10 197 0.0 82000.0 0.000000e+00 19600998.0 4.839753e+07 0
61 Kuwait 1.5701 85 27 0 2 13 40 16 367 745 98 0 27 38.0 0.0 0.0 0.0 0.0 6.831000e+09 4.724000e+10 7 2753000.0 345000.0 1.015000e+11 1641971.0 2.916467e+06 0
62 Kyrgyzstan 1.9244 5 0 0 0 0 5 2 150 385 30 141 21 0.0 0.0 0.0 0.0 0.0 2.000000e+07 8.164000e+09 28 1000.0 17200.0 4.000000e+07 3029935.0 5.849296e+06 0
63 Laos 3.4433 33 0 0 2 4 27 0 65 30 0 62 0 0.0 0.0 0.0 0.0 0.0 1.850000e+07 1.490000e+10 41 0.0 4500.0 0.000000e+00 3248143.0 7.234171e+06 0
64 Latvia 2.0145 5 0 0 0 12 5 0 0 303 47 20 0 18.0 0.0 0.0 0.0 0.0 7.240000e+08 4.002000e+10 42 0.0 32500.0 0.000000e+00 840595.0 1.923559e+06 0
65 Lebanon 2.5193 70 0 9 0 0 55 0 366 2228 12 374 30 57.0 0.0 0.0 0.0 0.0 2.500000e+09 3.930000e+10 8 0.0 110000.0 0.000000e+00 2135026.0 6.100075e+06 0
66 Liberia 5.5737 0 0 0 0 0 0 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 1.300000e+07 1.036000e+09 29 0.0 4500.0 0.000000e+00 2226923.0 4.809768e+06 0
67 Libya 1.3696 114 17 2 4 62 26 7 250 450 50 100 55 5.0 0.0 0.0 0.0 1.0 3.000000e+09 3.020000e+09 146 897100.0 315000.0 4.836000e+10 3552871.0 6.754507e+06 0
68 Lithuania 1.4752 10 0 0 5 0 5 0 0 420 56 54 0 12.0 0.0 0.0 0.0 0.0 1.107000e+09 3.448000e+10 61 2000.0 72400.0 1.200000e+07 1779322.0 2.793284e+06 0
69 Madagascar 3.0869 6 0 0 0 0 6 0 12 103 0 25 0 8.0 0.0 0.0 0.0 0.0 1.150000e+08 4.089000e+09 83 0.0 18500.0 0.000000e+00 10145026.0 2.568361e+07 0
70 Malaysia 0.6546 170 26 13 18 40 65 0 74 1387 0 211 54 61.0 0.0 2.0 0.0 6.0 4.000000e+09 2.172000e+11 114 647900.0 835000.0 3.600000e+09 15201837.0 3.180966e+07 0
71 Mali 1.8941 29 9 0 6 5 8 6 80 248 0 50 32 0.0 0.0 0.0 0.0 0.0 7.000000e+07 4.192000e+09 25 0.0 5500.0 0.000000e+00 5991557.0 1.842989e+07 0
72 Mauritania 3.0477 28 0 2 6 9 4 0 35 95 0 224 0 5.0 0.0 0.0 0.0 0.0 5.025000e+07 4.150000e+09 30 4000.0 18500.0 2.000000e+07 1555374.0 3.840429e+06 0
73 Mexico 0.6065 484 3 33 43 206 202 0 0 2199 0 265 0 189.0 0.0 0.0 0.0 4.0 7.000000e+09 4.458000e+11 1714 1981000.0 2000000.0 7.640000e+09 60460418.0 1.259592e+08 0
74 Moldova 2.1291 3 0 0 1 0 2 0 0 341 9 52 11 0.0 0.0 0.0 0.0 0.0 3.000000e+07 6.549000e+09 7 0.0 16320.0 0.000000e+00 2014503.0 3.437720e+06 0
75 Mongolia 2.0299 9 0 0 3 0 6 0 470 750 0 300 130 0.0 0.0 0.0 0.0 0.0 1.550000e+08 2.533000e+10 44 20000.0 25000.0 0.000000e+00 1818609.0 3.103428e+06 0
76 Montenegro 2.9941 9 0 0 0 0 9 0 0 26 0 12 18 18.0 0.0 0.0 0.0 2.0 6.500000e+07 2.516000e+09 5 0.0 4860.0 0.000000e+00 146191.0 6.142490e+05 0
77 Morocco 0.8408 214 46 0 31 67 64 0 1443 2901 505 200 144 121.0 0.0 0.0 0.0 3.0 1.000000e+10 5.148000e+10 55 160.0 206000.0 6.840000e+05 17157065.0 3.431413e+07 0
78 Mozambique 2.3364 16 8 0 1 1 6 2 100 335 0 260 12 8.0 0.0 0.0 0.0 0.0 2.450000e+08 1.091000e+10 98 0.0 22500.0 0.000000e+00 4629744.0 2.723379e+07 0
79 Myanmar 0.5691 276 59 21 27 82 86 9 434 1300 108 1612 84 187.0 0.0 1.0 0.0 5.0 2.650000e+09 6.594000e+09 64 12000.0 42600.0 1.390000e+08 30258643.0 5.562251e+07 0
80 Namibia 3.2817 30 6 0 3 14 7 2 7 410 0 50 4 8.0 0.0 0.0 0.0 0.0 5.050000e+08 7.969000e+09 112 0.0 25000.0 0.000000e+00 582642.0 2.533224e+06 0
81 Nepal 2.9891 16 0 0 3 0 13 0 0 214 0 84 0 0.0 0.0 0.0 0.0 0.0 2.130000e+08 5.849000e+09 47 0.0 20000.0 0.000000e+00 14739923.0 2.971759e+07 0
82 Netherlands 0.5919 168 61 1 4 27 75 28 18 1546 57 160 0 63.0 0.0 4.0 0.0 6.0 1.241900e+10 4.063000e+12 29 18170.0 840000.0 1.132000e+08 7820960.0 1.715123e+07 0
83 New Zealand 1.3684 48 0 0 7 13 22 0 0 200 0 24 0 11.0 0.0 0.0 0.0 2.0 4.300000e+09 9.162000e+10 123 31480.0 150000.0 5.690000e+07 2115989.0 4.545627e+06 0
84 Nicaragua 2.2747 19 0 0 5 1 14 0 104 265 0 654 163 30.0 0.0 0.0 0.0 0.0 1.400000e+08 1.131000e+10 147 0.0 35000.0 0.000000e+00 3030436.0 6.085213e+06 0
85 Niger 2.0153 16 0 2 5 0 7 1 0 182 0 0 0 0.0 0.0 0.0 0.0 0.0 3.250000e+08 3.728000e+09 30 11000.0 6500.0 1.500000e+08 6754519.0 1.986623e+07 0
86 Nigeria 0.6485 129 8 13 21 47 44 15 253 1789 25 339 36 75.0 0.0 0.0 0.0 0.0 2.155000e+09 4.096000e+10 54 1946000.0 275000.0 3.706000e+10 77108499.0 2.034525e+08 0
87 North Korea 0.3718 949 458 114 4 169 204 20 6045 10000 800 1000 2110 984.0 0.0 83.0 0.0 11.0 1.600000e+09 5.000000e+09 82 0.0 15500.0 0.000000e+00 13045878.0 2.538108e+07 0
88 North Macedonia 3.1808 20 0 0 0 10 14 4 31 251 0 144 24 0.0 0.0 0.0 0.0 0.0 1.081525e+08 8.790000e+09 10 0.0 18500.0 0.000000e+00 1053116.0 2.118945e+06 0
89 Norway 0.5277 150 59 15 4 32 47 0 52 730 80 0 12 62.0 0.0 6.0 0.0 4.0 7.179000e+09 6.423000e+11 95 1618000.0 260000.0 6.611000e+09 2170365.0 5.372191e+06 0
90 Oman 1.2514 131 29 10 9 46 42 0 117 761 39 144 12 16.0 0.0 0.0 0.0 0.0 8.686000e+09 4.627000e+10 132 970400.0 100000.0 5.373000e+09 1764529.0 3.494116e+06 0
91 Pakistan 0.2364 1372 356 90 49 513 346 56 2200 7330 429 1226 100 100.0 0.0 8.0 0.0 9.0 1.140000e+10 8.219000e+10 151 89720.0 575000.0 3.506000e+08 96344277.0 2.078625e+08 0
92 Panama 3.6537 39 0 0 11 4 23 0 0 65 0 0 0 20.0 0.0 0.0 0.0 0.0 5.000000e+08 9.153000e+10 117 0.0 100000.0 0.000000e+00 1759698.0 3.800644e+06 0
93 Paraguay 2.1898 33 0 0 6 15 11 0 13 63 0 108 0 0.0 0.0 0.0 0.0 0.0 2.500000e+08 1.770000e+10 799 0.0 30000.0 0.000000e+00 3372366.0 7.025763e+06 0
94 Peru 0.6219 273 17 38 40 77 99 16 146 552 24 231 70 60.0 0.0 5.0 0.0 7.0 2.560000e+09 6.625000e+10 191 43520.0 210000.0 4.730000e+08 15352302.0 3.133123e+07 0
95 Philippines 0.7852 171 0 19 23 24 97 0 7 513 0 286 0 103.0 0.0 0.0 0.0 2.0 3.470000e+09 7.618000e+10 247 15000.0 320000.0 1.385000e+08 51887757.0 1.058934e+08 0
96 Poland 0.3397 457 91 0 49 104 176 30 1069 2547 547 0 180 87.0 0.0 3.0 0.0 2.0 1.200000e+10 2.410000e+11 126 20070.0 585000.0 1.378000e+08 18826137.0 3.842069e+07 0
97 Portugal 0.8612 90 24 0 11 18 23 0 133 756 18 61 0 41.0 0.0 2.0 0.0 5.0 3.358000e+09 4.490000e+11 64 0.0 265000.0 0.000000e+00 4804949.0 1.035549e+07 0
98 Qatar 1.6703 123 24 6 12 35 46 3 92 250 46 12 15 86.0 0.0 0.0 0.0 0.0 6.000000e+09 1.678000e+11 6 1500000.0 190000.0 2.524000e+10 612164.0 2.363569e+06 0
99 Republic of the Congo 2.9509 13 2 0 3 0 8 1 86 225 0 0 6 6.0 0.0 0.0 0.0 0.0 7.150000e+08 4.605000e+09 27 244200.0 185000.0 1.600000e+09 1938754.0 5.062021e+06 0
100 Romania 0.6177 143 26 0 12 41 62 0 943 1369 0 808 243 48.0 0.0 0.0 0.0 3.0 5.050000e+09 9.597000e+10 45 73740.0 240000.0 6.000000e+08 11007501.0 2.145712e+07 0
102 Saudi Arabia 0.3034 879 270 81 49 208 283 34 1062 12825 705 1818 122 55.0 0.0 0.0 0.0 3.0 6.760000e+10 2.051000e+11 214 10130000.0 4000000.0 2.665000e+11 17703745.0 3.309111e+07 0
103 Serbia 0.9479 109 9 17 1 38 44 0 293 904 87 144 88 0.0 0.0 0.0 0.0 0.0 9.070000e+08 2.950000e+10 26 18740.0 75000.0 7.750000e+07 3468274.0 7.078110e+06 0
104 Sierra Leone 4.2063 5 0 0 0 0 5 2 0 13 0 0 0 10.0 0.0 0.0 0.0 0.0 7.550000e+07 1.615000e+09 8 0.0 9500.0 0.000000e+00 1432872.0 6.312212e+06 0
105 Singapore 0.7966 235 100 0 9 36 77 17 180 3000 48 77 24 40.0 0.0 0.0 0.0 6.0 1.120000e+10 5.661000e+11 9 0.0 1340000.0 0.000000e+00 4017314.0 5.995991e+06 0
106 Slovakia 0.8466 47 10 0 7 8 21 0 20 661 16 9 25 0.0 0.0 0.0 0.0 0.0 2.121818e+09 7.504000e+10 35 200.0 82000.0 9.000000e+06 2776970.0 5.445040e+06 0
107 Slovenia 1.9496 38 0 0 3 23 16 0 44 269 0 63 0 2.0 0.0 0.0 0.0 0.0 5.810000e+08 4.630000e+10 16 5.0 55000.0 0.000000e+00 1002714.0 2.102126e+06 0
108 Somalia 4.6404 0 0 0 0 0 0 0 10 100 0 30 10 3.0 0.0 0.0 0.0 0.0 6.220000e+07 5.300000e+09 61 0.0 6200.0 0.000000e+00 2702167.0 1.125903e+07 0
109 South Africa 0.4985 226 17 0 23 88 91 12 195 2000 43 72 50 30.0 0.0 3.0 0.0 4.0 4.278000e+09 1.563000e+11 566 2000.0 605000.0 1.500000e+07 26250220.0 5.538021e+07 0
110 South Korea 0.1509 1649 414 71 41 298 803 112 2614 14000 3040 3854 575 234.0 0.0 19.0 12.0 12.0 4.400000e+10 3.846000e+11 111 0.0 2800000.0 0.000000e+00 25709049.0 5.141810e+07 0
111 South Sudan 2.3501 19 0 0 2 0 17 6 110 200 24 0 14 0.0 0.0 0.0 0.0 0.0 8.000000e+07 2.250000e+09 85 150200.0 60000.0 3.750000e+09 5245155.0 1.020458e+07 0
112 Spain 0.3388 512 137 12 46 162 162 19 327 2023 95 140 0 77.0 1.0 3.0 0.0 11.0 1.510000e+10 2.094000e+12 150 2252.0 1226000.0 1.500000e+08 23136275.0 4.933108e+07 0
113 Sri Lanka 1.4661 77 0 0 15 6 54 9 202 570 0 209 22 40.0 0.0 0.0 0.0 0.0 2.500000e+09 5.172000e+10 19 0.0 90000.0 0.000000e+00 10927071.0 2.257659e+07 0
114 Sudan 1.3017 190 46 38 22 11 73 43 690 400 10 0 0 18.0 0.0 0.0 0.0 0.0 2.470000e+09 5.605000e+10 74 102300.0 96800.0 5.000000e+09 24061430.0 4.312084e+07 0
115 Suriname 4.6042 3 0 0 0 0 3 0 0 66 0 0 0 3.0 0.0 0.0 0.0 0.0 6.300000e+07 1.700000e+09 55 17000.0 15100.0 8.398000e+07 132740.0 5.979270e+05 0
116 Sweden 0.5304 204 71 0 6 69 53 0 126 1036 88 0 0 63.0 0.0 5.0 0.0 0.0 6.326924e+09 9.399000e+11 231 0.0 320000.0 0.000000e+00 4116808.0 1.004100e+07 0
117 Switzerland 0.5259 169 54 0 18 54 42 0 326 1338 224 0 0 0.0 0.0 0.0 0.0 0.0 5.000000e+09 1.664000e+12 63 0.0 260000.0 0.000000e+00 3632250.0 8.292809e+06 0
118 Syria 0.8241 456 199 20 5 67 165 27 4135 5370 575 2550 750 56.0 0.0 0.0 0.0 2.0 1.800000e+09 4.989000e+09 90 14000.0 260000.0 2.500000e+09 12450728.0 1.945426e+07 0
119 Taiwan 0.4008 744 289 0 19 207 210 91 1180 2000 482 1160 115 117.0 0.0 4.0 4.0 22.0 1.072500e+10 1.819000e+11 37 196.0 1032000.0 2.380000e+06 12196809.0 2.354596e+07 0
120 Tajikistan 1.8661 25 0 0 1 4 20 6 253 347 0 90 128 0.0 0.0 0.0 0.0 0.0 1.600000e+09 5.750000e+09 24 180.0 20500.0 1.200000e+07 4095924.0 8.604882e+06 0
121 Tanzania 2.0651 34 14 0 6 8 6 0 156 70 0 12 0 19.0 0.0 0.0 0.0 0.0 2.230000e+08 1.766000e+10 166 0.0 46000.0 0.000000e+00 10258498.0 5.545134e+07 0
122 Thailand 0.3571 570 75 19 48 154 307 7 841 1416 20 776 25 292.0 1.0 0.0 0.0 7.0 7.100000e+09 1.320000e+11 101 239700.0 1345000.0 3.964000e+08 35543014.0 6.861586e+07 0
123 Tunisia 1.4619 147 12 0 14 29 92 0 181 878 20 165 0 50.0 0.0 0.0 0.0 0.0 5.500000e+08 3.019000e+10 29 49170.0 90500.0 4.250000e+08 5850224.0 1.151619e+07 0
124 Turkey 0.2098 1055 206 0 80 276 497 100 2622 8777 1278 1260 438 149.0 0.0 12.0 0.0 16.0 1.900000e+10 4.524000e+11 98 245000.0 845000.0 3.885000e+08 41847478.0 8.125724e+07 0
125 Turkmenistan 1.3292 72 24 20 3 0 25 10 712 2000 68 269 116 4.0 0.0 0.0 0.0 0.0 2.000000e+08 5.394000e+08 26 230880.0 150000.0 6.000000e+08 2797493.0 5.411012e+06 0
126 Uganda 1.6176 48 10 0 2 10 26 5 371 1081 6 53 26 0.0 0.0 0.0 0.0 0.0 9.350000e+08 1.080000e+10 47 0.0 17500.0 2.500000e+09 14707350.0 4.085375e+07 0
127 Ukraine 0.4457 297 48 25 32 76 121 34 2026 10135 738 2040 430 25.0 0.0 0.0 0.0 1.0 5.400000e+09 1.300000e+11 187 29650.0 325000.0 3.950000e+08 22195911.0 4.395230e+07 0
128 United Arab Emirates 0.7034 538 98 20 40 145 229 30 434 8691 183 76 72 75.0 0.0 0.0 0.0 0.0 2.275500e+10 2.376000e+11 43 3174000.0 575000.0 9.780000e+10 5820789.0 9.701315e+06 0
129 United Kingdom 0.1717 733 133 15 44 241 312 49 227 5000 89 126 35 88.0 2.0 10.0 6.0 13.0 5.510000e+10 8.126000e+12 460 910500.0 1600000.0 2.564000e+09 29948413.0 6.510525e+07 0
131 Uruguay 1.8909 50 0 7 9 16 13 0 78 463 0 0 4 20.0 0.0 0.0 0.0 1.0 4.950000e+09 2.837000e+10 133 0.0 55600.0 0.000000e+00 1549878.0 3.369299e+06 0
132 Uzbekistan 0.8086 185 66 20 18 2 79 25 420 1215 137 0 98 0.0 0.0 0.0 0.0 0.0 9.750000e+08 1.690000e+10 53 46070.0 142000.0 5.940000e+08 15912566.0 3.002371e+07 0
133 Venezuela 0.6449 260 38 0 52 82 86 10 390 600 73 104 36 49.0 0.0 2.0 0.0 4.0 7.450000e+08 1.003000e+11 444 2007000.0 575000.0 3.009000e+11 14260129.0 3.168918e+07 0
134 Vietnam 0.3559 293 77 0 38 36 138 25 2615 2530 70 1000 85 65.0 0.0 6.0 0.0 9.0 5.500000e+09 9.658000e+10 45 271400.0 525000.0 4.400000e+09 51043216.0 9.704033e+07 0
135 Yemen 1.2412 169 77 0 8 21 61 14 620 615 20 85 150 30.0 0.0 0.0 0.0 0.0 1.400000e+09 7.068000e+09 57 12260.0 145000.0 3.000000e+09 11266221.0 2.866723e+07 0
136 Zambia 1.6464 108 18 0 11 52 27 0 75 184 0 42 50 0.0 0.0 0.0 0.0 0.0 4.000000e+07 1.166000e+10 88 0.0 21000.0 0.000000e+00 6166905.0 1.644508e+07 0
137 Zimbabwe 1.7577 90 10 0 14 38 28 6 42 300 0 65 22 0.0 0.0 0.0 0.0 0.0 1.000000e+08 9.357000e+09 196 0.0 19500.0 0.000000e+00 5584086.0 1.403037e+07 0
In [78]:
df[df["cluster"] == 1]
Out[78]:
country Military Strength Power Index Airforce Strength_Aircraft Strength value Airforce Strength_Fighter/Interceptor Strength value Airforce Strength_Attack Aircraft Strength value Airforce Strength_Transport Aircraft Fleet Strength value Airforce Strength_Trainer Aircraft Fleet value Airforce Strength_Helicopter Fleet Strength value Airforce Strength_Attack Helicopter Fleet Strength value Land Strength_Tank Strength value Land Strength_AFV/APC Strength value Land Strength_Self-Propelled Artillery Strength value Land Strength_Towed Artillery Strength value Land Strength_Rocket Projector Strength value Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value Finances_defense spending budget value Finances_External Debt value Logistics_Airport Totals value Natural resources_Oil Production value Natural resources_Oil Consumption value Natural resources_Proven Oil Reserves value Manpower_Available Manpower value Manpower_Total Population value cluster
130 United States 0.0606 13264 2085 715 945 2643 5768 967 6289 39253 1465 2740 1366 490.0 20.0 66.0 91.0 0.0 7.500000e+11 1.791000e+13 13513 9352000.0 20000000.0 3.652000e+10 144872845.0 329256465.0 1
In [79]:
df[df["cluster"] == 2]
Out[79]:
country Military Strength Power Index Airforce Strength_Aircraft Strength value Airforce Strength_Fighter/Interceptor Strength value Airforce Strength_Attack Aircraft Strength value Airforce Strength_Transport Aircraft Fleet Strength value Airforce Strength_Trainer Aircraft Fleet value Airforce Strength_Helicopter Fleet Strength value Airforce Strength_Attack Helicopter Fleet Strength value Land Strength_Tank Strength value Land Strength_AFV/APC Strength value Land Strength_Self-Propelled Artillery Strength value Land Strength_Towed Artillery Strength value Land Strength_Rocket Projector Strength value Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value Finances_defense spending budget value Finances_External Debt value Logistics_Airport Totals value Natural resources_Oil Production value Natural resources_Oil Consumption value Natural resources_Proven Oil Reserves value Manpower_Available Manpower value Manpower_Total Population value cluster
26 China 0.0691 3210 1232 371 224 314 911 281 3500 33000 3800 3600 2650 777.0 2.0 74.0 36.0 52.0 2.370000e+11 1.598000e+12 507 3838000.0 13500000.0 2.562000e+10 752855402.0 1.384689e+09 2
101 Russia 0.0681 4163 873 742 424 497 1522 531 12950 27038 6083 4465 3860 603.0 1.0 62.0 16.0 10.0 4.800000e+10 5.396000e+11 1218 10580000.0 3225000.0 8.000000e+10 69640160.0 1.421228e+08 2

Evaluate¶

In [80]:
print(f'Silhouette Score(n=4): {silhouette_score(X, df.cluster)}') # towards to 1 means, data good clustered by model
Silhouette Score(n=4): 0.8388682569557854
In [81]:
range_n_clusters = range(2,9)
for num_clusters in range_n_clusters:
    # intialise kmeans
    kmeans = KMeans(n_clusters=num_clusters, random_state=42)
    kmeans.fit(X)
    cluster_labels = kmeans.labels_
    # silhouette score
    silhouette_avg = silhouette_score(X, cluster_labels)
    print(f"For n_clusters={num_clusters}, the silhouette score is {silhouette_avg}")
For n_clusters=2, the silhouette score is 0.8645343457024808
For n_clusters=3, the silhouette score is 0.8194441293083203
For n_clusters=4, the silhouette score is 0.4955821939029867
For n_clusters=5, the silhouette score is 0.5176044245264125
For n_clusters=6, the silhouette score is 0.4865589638170736
For n_clusters=7, the silhouette score is 0.4861811103301968
For n_clusters=8, the silhouette score is 0.4769827086899002
In [82]:
kmean = pd.DataFrame(X,columns=df.drop(["country","cluster"],axis=1).columns)
kmean["cluster"] = df["cluster"]

clus_pred_kmean = kmean.groupby("cluster").mean().T
clus_pred_kmean
Out[82]:
cluster 0 1 2
Military Strength Power Index 0.023495 -1.061327 -1.055263
Airforce Strength_Aircraft Strength value -0.117501 10.489144 2.686763
Airforce Strength_Fighter/Interceptor Strength value -0.127346 8.729991 4.230860
Airforce Strength_Attack Aircraft Strength value -0.137689 7.317921 5.635064
Airforce Strength_Transport Aircraft Fleet Strength value -0.120965 9.943640 3.193295
Airforce Strength_Trainer Aircraft Fleet value -0.098964 10.670489 1.344839
Airforce Strength_Helicopter Fleet Strength value -0.110602 10.831533 2.049863
Airforce Strength_Attack Helicopter Fleet Strength value -0.130020 9.707636 3.922510
Land Strength_Tank Strength value -0.102035 3.736804 5.018954
Land Strength_AFV/APC Strength value -0.126185 6.820244 5.107360
Land Strength_Self-Propelled Artillery Strength value -0.115742 1.827546 6.898793
Land Strength_Towed Artillery Strength value -0.088785 2.922092 4.531968
Land Strength_Rocket Projector Strength value -0.113657 2.505197 6.419227
Navy Strength_Navy Fleet Strengths value -0.086812 2.957722 4.380943
Navy Strength_Aircraft Carrier Fleet Strength value -0.091292 10.990097 0.667169
Navy Strength_Submarine Fleet Strength value -0.112117 4.939065 5.098333
Navy Strength_Destroyer Fleet Strength value -0.111959 9.788704 2.662858
Navy Strength_Frigate Fleet Strength value -0.066416 -0.486141 4.726171
Finances_defense spending budget value -0.109676 10.974103 1.916073
Finances_External Debt value -0.074411 9.448554 0.298445
Logistics_Airport Totals value -0.088062 10.941042 0.473666
Natural resources_Oil Production value -0.098166 5.277535 3.987416
Natural resources_Oil Consumption value -0.118669 8.930373 3.544980
Natural resources_Proven Oil Reserves value -0.018487 0.576956 0.959389
Manpower_Available Manpower value -0.078388 1.418403 4.581992
Manpower_Total Population value -0.076390 1.678174 4.317225
In [83]:
fig= px.line(clus_pred_kmean)
fig.show()

Results¶

  • Generally, Cluster 1 is in the best shape in terms of land, sea, and air power. However, it lags behind Cluster 2 in tank strength, self-propelled artillery, towed artillery, Rocket Projectors (Multiple-Launch Rocket Systems), and frigate-fleet strength.
  • Cluster o from every perspective is the weakest one.

Hierarchical Clustering¶

In [84]:
from scipy.cluster.hierarchy import dendrogram, linkage
# yeni bir data geldiğinde direkt predict yapamayız, datanın içine atarak işlem yapmalıyız.

Dendogram¶

In [85]:
hc_ward = linkage(y = X, method = "ward") # eklendiği sınıfın varyansını düşürecek şekile ata
hc_complete = linkage(X, "complete") # en uzak noktaya göre en küçük değer
hc_average = linkage(X, "average")  # ortalama
hc_single = linkage(X, "single") #en yakın noktaya göre en küçük değer
In [86]:
plt.figure(figsize = (20,12))

plt.subplot(221)
plt.title("Ward")
plt.xlabel("Observations")
plt.ylabel("Distance")
dendrogram(hc_ward, leaf_font_size = 10, truncate_mode='lastp', p=10)

plt.subplot(222)
plt.title("Complete")
plt.xlabel("Observations")
plt.ylabel("Distance")
dendrogram(hc_complete, leaf_font_size = 10, truncate_mode='lastp', p=10)

plt.subplot(223)
plt.title("Average")
plt.xlabel("Observations")
plt.ylabel("Distance")
dendrogram(hc_average, leaf_font_size = 10, truncate_mode='lastp', p=10)

plt.subplot(224)
plt.title("Single")
plt.xlabel("Observations")
plt.ylabel("Distance")
dendrogram(hc_single, leaf_font_size = 10, truncate_mode='lastp', p=10);

Model Building and label visualisation¶

In [87]:
from sklearn.cluster import AgglomerativeClustering
# elbow yapılmıyor
In [88]:
model1 = AgglomerativeClustering(n_clusters=4, affinity = "euclidean", linkage = "ward")
model1.fit_predict(X)
Out[88]:
array([3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 1, 1, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3,
       1, 3, 3, 1, 0, 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 1, 3, 3, 1,
       3, 1, 3, 3, 3, 0, 1, 1, 1, 3, 1, 1, 3, 1, 1, 3, 3, 1, 3, 3, 3, 3,
       3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1,
       3, 3, 3, 1, 3, 3, 1, 3, 1, 1, 3, 3, 1, 0, 1, 3, 3, 1, 3, 3, 3, 1,
       1, 3, 1, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 3, 1, 3, 3, 1, 1, 1, 2, 3,
       3, 1, 1, 3, 3, 3], dtype=int64)
In [89]:
range_n_clusters = range(2,9)
for num_clusters in range_n_clusters:
    # intialise kmeans
    kmeans = KMeans(n_clusters=num_clusters, random_state=42)
    kmeans.fit(X)
    cluster_labels = kmeans.labels_
    # silhouette score
    silhouette_avg = silhouette_score(X, cluster_labels)
    print(f"For n_clusters={num_clusters}, the silhouette score is {silhouette_avg}")
For n_clusters=2, the silhouette score is 0.8645343457024808
For n_clusters=3, the silhouette score is 0.8194441293083203
For n_clusters=4, the silhouette score is 0.4955821939029867
For n_clusters=5, the silhouette score is 0.5176044245264125
For n_clusters=6, the silhouette score is 0.4865589638170736
For n_clusters=7, the silhouette score is 0.4861811103301968
For n_clusters=8, the silhouette score is 0.4769827086899002
In [90]:
df["cluster_1"] = model1.labels_
In [91]:
fig = px.scatter_3d(x=df["Airforce Strength_Aircraft Strength value"],
                   y=df["Finances_defense spending budget value"],
                   z=df["Finances_External Debt value"],
                   color=df.cluster_1,
                   labels = {"x": "Airforce Strength_Aircraft Strength value",
                             "y": "Finances_defense spending budget value",
                             "z": "Finances_External Debt value"},
                   hover_name=df["country"])

fig.show()
In [92]:
plt.figure(figsize=(15,10))
plt.title("Cluster Count")
ax1 = sns.countplot(x = df.cluster_1)

for p in ax1.patches:
    ax1.annotate(
        text=f"{p.get_height():1.0f}",
        xy=(p.get_x() + p.get_width() / 2., p.get_height()), 
        xycoords='data',
        ha='center', 
        va='center', 
        fontsize=11, 
        color='black',
        xytext=(0,7), 
        textcoords='offset points',
        clip_on=True,                   
    )
plt.show();
In [ ]:
dend = pd.DataFrame(X,columns=df.drop(["country","cluster","cluster_1"],axis=1).columns)
dend["cluster"] = df["cluster_1"]

clus_pred_dend = dend.groupby("cluster").mean().T
clus_pred_dend
In [ ]:
fig= px.line(clus_pred_dend)
fig.show()

Results¶

  • Generally, Cluster 2 is in the best shape in terms of land, sea, and air power. However, it lags behind Cluster 0 in tank strength, self-propelled artillery, towed artillery, Rocket Projectors (Multiple-Launch Rocket Systems), and frigate-fleet strength.
  • Cluster 3 from every perspective is the weakest one.
In [93]:
df[df["cluster_1"] == 0]
Out[93]:
country Military Strength Power Index Airforce Strength_Aircraft Strength value Airforce Strength_Fighter/Interceptor Strength value Airforce Strength_Attack Aircraft Strength value Airforce Strength_Transport Aircraft Fleet Strength value Airforce Strength_Trainer Aircraft Fleet value Airforce Strength_Helicopter Fleet Strength value Airforce Strength_Attack Helicopter Fleet Strength value Land Strength_Tank Strength value Land Strength_AFV/APC Strength value Land Strength_Self-Propelled Artillery Strength value Land Strength_Towed Artillery Strength value Land Strength_Rocket Projector Strength value Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value Finances_defense spending budget value Finances_External Debt value Logistics_Airport Totals value Natural resources_Oil Production value Natural resources_Oil Consumption value Natural resources_Proven Oil Reserves value Manpower_Available Manpower value Manpower_Total Population value cluster cluster_1
26 China 0.0691 3210 1232 371 224 314 911 281 3500 33000 3800 3600 2650 777.0 2.0 74.0 36.0 52.0 2.370000e+11 1.598000e+12 507 3838000.0 13500000.0 2.562000e+10 752855402.0 1.384689e+09 2 0
49 India 0.0953 2123 538 172 250 359 722 23 4292 8686 235 4060 266 285.0 1.0 16.0 10.0 13.0 6.100000e+10 5.016000e+11 346 733900.0 5000000.0 4.621000e+09 622480340.0 1.296834e+09 0 0
101 Russia 0.0681 4163 873 742 424 497 1522 531 12950 27038 6083 4465 3860 603.0 1.0 62.0 16.0 10.0 4.800000e+10 5.396000e+11 1218 10580000.0 3225000.0 8.000000e+10 69640160.0 1.421228e+08 2 0
In [94]:
df[df["cluster_1"] == 1]
Out[94]:
country Military Strength Power Index Airforce Strength_Aircraft Strength value Airforce Strength_Fighter/Interceptor Strength value Airforce Strength_Attack Aircraft Strength value Airforce Strength_Transport Aircraft Fleet Strength value Airforce Strength_Trainer Aircraft Fleet value Airforce Strength_Helicopter Fleet Strength value Airforce Strength_Attack Helicopter Fleet Strength value Land Strength_Tank Strength value Land Strength_AFV/APC Strength value Land Strength_Self-Propelled Artillery Strength value Land Strength_Towed Artillery Strength value Land Strength_Rocket Projector Strength value Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value Finances_defense spending budget value Finances_External Debt value Logistics_Airport Totals value Natural resources_Oil Production value Natural resources_Oil Consumption value Natural resources_Proven Oil Reserves value Manpower_Available Manpower value Manpower_Total Population value cluster cluster_1
2 Algeria 0.4659 551 103 22 59 87 257 45 880 7361 320 240 316 201.0 0.0 6.0 0.0 5.0 1.300000e+10 6.260000e+09 157 1306000.0 325000.0 1.220000e+10 20741263.0 41657488.0 0 1
6 Australia 0.3225 464 82 6 38 174 133 22 59 3051 0 54 0 48.0 2.0 6.0 2.0 8.0 2.630000e+10 1.714000e+12 480 263000.0 1005000.0 1.821000e+09 10808002.0 23470145.0 0 1
10 Bangladesh 0.7066 177 44 0 11 57 67 0 276 1230 18 419 72 112.0 0.0 2.0 0.0 8.0 3.800000e+09 5.026000e+10 18 3666.0 112000.0 2.800000e+07 78913289.0 159453001.0 0 1
11 Belarus 0.8179 202 39 68 4 28 63 21 532 1560 482 228 238 0.0 0.0 0.0 0.0 0.0 6.237028e+08 3.992000e+10 65 32000.0 190000.0 1.980000e+08 4982905.0 9527543.0 0 1
17 Brazil 0.1988 715 43 78 126 198 242 12 437 1820 132 565 84 112.0 0.0 6.0 0.0 7.0 2.780000e+10 5.474000e+11 4093 2622000.0 3020000.0 1.300000e+10 107764996.0 208846892.0 0 1
18 Bulgaria 0.8916 63 13 4 5 20 25 2 710 2000 506 350 192 29.0 0.0 0.0 0.0 4.0 1.079000e+09 4.206000e+10 68 1000.0 115000.0 1.500000e+07 3278916.0 7057504.0 0 1
22 Canada 0.3712 385 62 0 38 135 145 0 80 1973 0 133 0 64.0 0.0 4.0 0.0 12.0 2.250000e+10 1.608000e+12 1467 3977000.0 2500000.0 1.697000e+11 16110865.0 35881659.0 0 1
25 Chile 0.7668 282 44 0 30 93 92 0 300 1430 48 158 10 69.0 0.0 4.0 0.0 10.0 4.250000e+09 1.834000e+11 481 3244.0 325000.0 1.500000e+08 8657902.0 17925262.0 0 1
27 Colombia 0.6045 469 21 38 76 80 224 0 0 595 6 110 0 453.0 0.0 11.0 0.0 4.0 1.060000e+10 1.246000e+11 836 853600.0 300000.0 2.002000e+09 24084498.0 48168996.0 0 1
32 Denmark 0.7878 113 33 0 4 38 35 0 57 972 22 0 0 74.0 0.0 0.0 0.0 9.0 4.760000e+09 4.848000e+11 80 137100.0 162000.0 4.906000e+08 2590457.0 5809502.0 0 1
35 Egypt 0.1872 1054 215 88 59 387 294 81 4295 11700 1139 2189 1084 316.0 2.0 8.0 0.0 7.0 1.120000e+10 7.747000e+10 83 589400.0 832000.0 4.400000e+09 42946553.0 99413317.0 0 1
39 Finland 0.8498 194 55 0 11 105 127 0 200 2050 100 627 75 246.0 0.0 0.0 0.0 0.0 3.570000e+09 1.506000e+11 148 0.0 205000.0 0.000000e+00 2307420.0 5537364.0 0 1
40 France 0.1702 1229 269 0 121 187 589 62 528 6028 109 12 13 180.0 4.0 9.0 11.0 11.0 4.150000e+10 5.360000e+12 464 15170.0 1600000.0 7.235000e+07 30111868.0 67364357.0 0 1
43 Germany 0.2186 712 128 74 71 26 386 56 245 4583 108 0 38 80.0 0.0 6.0 0.0 9.0 5.000000e+10 5.326000e+12 539 43410.0 2500000.0 1.454000e+08 37010559.0 80457737.0 0 1
45 Greece 0.5311 566 187 0 15 143 231 29 1355 3691 547 463 152 116.0 0.0 11.0 0.0 13.0 4.844000e+09 5.066000e+11 77 2753.0 350000.0 1.000000e+07 4993347.0 10761523.0 0 1
50 Indonesia 0.2544 462 41 39 54 109 177 16 313 1178 153 366 36 282.0 0.0 5.0 0.0 7.0 7.600000e+09 3.444000e+11 673 801700.0 1630000.0 3.230000e+09 130868127.0 262787403.0 0 1
51 Iran 0.2191 509 155 23 62 94 100 12 2056 4300 570 2088 1935 398.0 0.0 34.0 0.0 7.0 1.960000e+10 7.995000e+09 319 4469000.0 2000000.0 1.584000e+11 47324105.0 83024745.0 0 1
52 Iraq 0.7911 348 26 33 16 102 186 40 309 4739 44 120 30 60.0 0.0 0.0 0.0 0.0 1.730000e+09 7.302000e+10 102 4454000.0 825000.0 1.425000e+11 16399240.0 40194216.0 0 1
54 Israel 0.3111 589 259 18 15 154 146 48 2760 10275 650 300 100 65.0 0.0 5.0 0.0 0.0 2.000000e+10 8.866000e+10 47 390.0 250000.0 1.273000e+07 3647983.0 8424904.0 0 1
55 Italy 0.2111 860 99 110 38 185 439 59 200 6947 54 108 21 249.0 2.0 8.0 4.0 12.0 2.780000e+10 2.444000e+12 129 77530.0 1300000.0 5.567000e+08 28011003.0 62246674.0 0 1
57 Japan 0.1501 1561 279 12 60 427 637 119 1004 3130 238 500 99 155.0 4.0 20.0 40.0 0.0 4.900000e+10 3.240000e+12 175 3841.0 4000000.0 4.412000e+07 53873803.0 126168156.0 0 1
58 Jordan 1.1441 278 44 4 16 75 146 47 1313 2897 461 72 88 37.0 0.0 0.0 0.0 0.0 2.600000e+09 2.934000e+10 18 22.0 110000.0 1.000000e+06 3346692.0 10458413.0 0 1
61 Kuwait 1.5701 85 27 0 2 13 40 16 367 745 98 0 27 38.0 0.0 0.0 0.0 0.0 6.831000e+09 4.724000e+10 7 2753000.0 345000.0 1.015000e+11 1641971.0 2916467.0 0 1
70 Malaysia 0.6546 170 26 13 18 40 65 0 74 1387 0 211 54 61.0 0.0 2.0 0.0 6.0 4.000000e+09 2.172000e+11 114 647900.0 835000.0 3.600000e+09 15201837.0 31809660.0 0 1
73 Mexico 0.6065 484 3 33 43 206 202 0 0 2199 0 265 0 189.0 0.0 0.0 0.0 4.0 7.000000e+09 4.458000e+11 1714 1981000.0 2000000.0 7.640000e+09 60460418.0 125959205.0 0 1
77 Morocco 0.8408 214 46 0 31 67 64 0 1443 2901 505 200 144 121.0 0.0 0.0 0.0 3.0 1.000000e+10 5.148000e+10 55 160.0 206000.0 6.840000e+05 17157065.0 34314130.0 0 1
79 Myanmar 0.5691 276 59 21 27 82 86 9 434 1300 108 1612 84 187.0 0.0 1.0 0.0 5.0 2.650000e+09 6.594000e+09 64 12000.0 42600.0 1.390000e+08 30258643.0 55622506.0 0 1
82 Netherlands 0.5919 168 61 1 4 27 75 28 18 1546 57 160 0 63.0 0.0 4.0 0.0 6.0 1.241900e+10 4.063000e+12 29 18170.0 840000.0 1.132000e+08 7820960.0 17151228.0 0 1
87 North Korea 0.3718 949 458 114 4 169 204 20 6045 10000 800 1000 2110 984.0 0.0 83.0 0.0 11.0 1.600000e+09 5.000000e+09 82 0.0 15500.0 0.000000e+00 13045878.0 25381085.0 0 1
91 Pakistan 0.2364 1372 356 90 49 513 346 56 2200 7330 429 1226 100 100.0 0.0 8.0 0.0 9.0 1.140000e+10 8.219000e+10 151 89720.0 575000.0 3.506000e+08 96344277.0 207862518.0 0 1
94 Peru 0.6219 273 17 38 40 77 99 16 146 552 24 231 70 60.0 0.0 5.0 0.0 7.0 2.560000e+09 6.625000e+10 191 43520.0 210000.0 4.730000e+08 15352302.0 31331228.0 0 1
96 Poland 0.3397 457 91 0 49 104 176 30 1069 2547 547 0 180 87.0 0.0 3.0 0.0 2.0 1.200000e+10 2.410000e+11 126 20070.0 585000.0 1.378000e+08 18826137.0 38420687.0 0 1
97 Portugal 0.8612 90 24 0 11 18 23 0 133 756 18 61 0 41.0 0.0 2.0 0.0 5.0 3.358000e+09 4.490000e+11 64 0.0 265000.0 0.000000e+00 4804949.0 10355493.0 0 1
100 Romania 0.6177 143 26 0 12 41 62 0 943 1369 0 808 243 48.0 0.0 0.0 0.0 3.0 5.050000e+09 9.597000e+10 45 73740.0 240000.0 6.000000e+08 11007501.0 21457116.0 0 1
102 Saudi Arabia 0.3034 879 270 81 49 208 283 34 1062 12825 705 1818 122 55.0 0.0 0.0 0.0 3.0 6.760000e+10 2.051000e+11 214 10130000.0 4000000.0 2.665000e+11 17703745.0 33091113.0 0 1
105 Singapore 0.7966 235 100 0 9 36 77 17 180 3000 48 77 24 40.0 0.0 0.0 0.0 6.0 1.120000e+10 5.661000e+11 9 0.0 1340000.0 0.000000e+00 4017314.0 5995991.0 0 1
109 South Africa 0.4985 226 17 0 23 88 91 12 195 2000 43 72 50 30.0 0.0 3.0 0.0 4.0 4.278000e+09 1.563000e+11 566 2000.0 605000.0 1.500000e+07 26250220.0 55380210.0 0 1
110 South Korea 0.1509 1649 414 71 41 298 803 112 2614 14000 3040 3854 575 234.0 0.0 19.0 12.0 12.0 4.400000e+10 3.846000e+11 111 0.0 2800000.0 0.000000e+00 25709049.0 51418097.0 0 1
112 Spain 0.3388 512 137 12 46 162 162 19 327 2023 95 140 0 77.0 1.0 3.0 0.0 11.0 1.510000e+10 2.094000e+12 150 2252.0 1226000.0 1.500000e+08 23136275.0 49331076.0 0 1
118 Syria 0.8241 456 199 20 5 67 165 27 4135 5370 575 2550 750 56.0 0.0 0.0 0.0 2.0 1.800000e+09 4.989000e+09 90 14000.0 260000.0 2.500000e+09 12450728.0 19454263.0 0 1
119 Taiwan 0.4008 744 289 0 19 207 210 91 1180 2000 482 1160 115 117.0 0.0 4.0 4.0 22.0 1.072500e+10 1.819000e+11 37 196.0 1032000.0 2.380000e+06 12196809.0 23545963.0 0 1
122 Thailand 0.3571 570 75 19 48 154 307 7 841 1416 20 776 25 292.0 1.0 0.0 0.0 7.0 7.100000e+09 1.320000e+11 101 239700.0 1345000.0 3.964000e+08 35543014.0 68615858.0 0 1
124 Turkey 0.2098 1055 206 0 80 276 497 100 2622 8777 1278 1260 438 149.0 0.0 12.0 0.0 16.0 1.900000e+10 4.524000e+11 98 245000.0 845000.0 3.885000e+08 41847478.0 81257239.0 0 1
127 Ukraine 0.4457 297 48 25 32 76 121 34 2026 10135 738 2040 430 25.0 0.0 0.0 0.0 1.0 5.400000e+09 1.300000e+11 187 29650.0 325000.0 3.950000e+08 22195911.0 43952299.0 0 1
128 United Arab Emirates 0.7034 538 98 20 40 145 229 30 434 8691 183 76 72 75.0 0.0 0.0 0.0 0.0 2.275500e+10 2.376000e+11 43 3174000.0 575000.0 9.780000e+10 5820789.0 9701315.0 0 1
129 United Kingdom 0.1717 733 133 15 44 241 312 49 227 5000 89 126 35 88.0 2.0 10.0 6.0 13.0 5.510000e+10 8.126000e+12 460 910500.0 1600000.0 2.564000e+09 29948413.0 65105246.0 0 1
133 Venezuela 0.6449 260 38 0 52 82 86 10 390 600 73 104 36 49.0 0.0 2.0 0.0 4.0 7.450000e+08 1.003000e+11 444 2007000.0 575000.0 3.009000e+11 14260129.0 31689176.0 0 1
134 Vietnam 0.3559 293 77 0 38 36 138 25 2615 2530 70 1000 85 65.0 0.0 6.0 0.0 9.0 5.500000e+09 9.658000e+10 45 271400.0 525000.0 4.400000e+09 51043216.0 97040334.0 0 1
In [95]:
df[df["cluster_1"] == 2]
Out[95]:
country Military Strength Power Index Airforce Strength_Aircraft Strength value Airforce Strength_Fighter/Interceptor Strength value Airforce Strength_Attack Aircraft Strength value Airforce Strength_Transport Aircraft Fleet Strength value Airforce Strength_Trainer Aircraft Fleet value Airforce Strength_Helicopter Fleet Strength value Airforce Strength_Attack Helicopter Fleet Strength value Land Strength_Tank Strength value Land Strength_AFV/APC Strength value Land Strength_Self-Propelled Artillery Strength value Land Strength_Towed Artillery Strength value Land Strength_Rocket Projector Strength value Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value Finances_defense spending budget value Finances_External Debt value Logistics_Airport Totals value Natural resources_Oil Production value Natural resources_Oil Consumption value Natural resources_Proven Oil Reserves value Manpower_Available Manpower value Manpower_Total Population value cluster cluster_1
130 United States 0.0606 13264 2085 715 945 2643 5768 967 6289 39253 1465 2740 1366 490.0 20.0 66.0 91.0 0.0 7.500000e+11 1.791000e+13 13513 9352000.0 20000000.0 3.652000e+10 144872845.0 329256465.0 1 2
In [96]:
df[df["cluster_1"] == 3]
Out[96]:
country Military Strength Power Index Airforce Strength_Aircraft Strength value Airforce Strength_Fighter/Interceptor Strength value Airforce Strength_Attack Aircraft Strength value Airforce Strength_Transport Aircraft Fleet Strength value Airforce Strength_Trainer Aircraft Fleet value Airforce Strength_Helicopter Fleet Strength value Airforce Strength_Attack Helicopter Fleet Strength value Land Strength_Tank Strength value Land Strength_AFV/APC Strength value Land Strength_Self-Propelled Artillery Strength value Land Strength_Towed Artillery Strength value Land Strength_Rocket Projector Strength value Navy Strength_Navy Fleet Strengths value Navy Strength_Aircraft Carrier Fleet Strength value Navy Strength_Submarine Fleet Strength value Navy Strength_Destroyer Fleet Strength value Navy Strength_Frigate Fleet Strength value Finances_defense spending budget value Finances_External Debt value Logistics_Airport Totals value Natural resources_Oil Production value Natural resources_Oil Consumption value Natural resources_Proven Oil Reserves value Manpower_Available Manpower value Manpower_Total Population value cluster cluster_1
0 Afghanistan 1.3444 260 0 25 30 0 187 0 0 1062 0 176 50 0.0 0.0 0.0 0.0 0.0 1.200000e+10 2.840000e+09 43 0.0 5500.0 0.000000e+00 14325743.0 34940837.0 0 3
1 Albania 2.3137 19 0 0 0 0 19 0 0 467 0 0 0 38.0 0.0 0.0 0.0 0.0 2.500000e+08 9.505000e+09 4 16000.0 42500.0 1.683000e+08 1519438.0 3057220.0 0 3
3 Angola 0.8379 295 72 18 30 47 126 15 379 595 28 357 115 57.0 0.0 0.0 0.0 0.0 7.000000e+09 4.208000e+10 176 1666000.0 82300.0 8.273000e+09 6244205.0 30355880.0 0 3
4 Argentina 0.6521 227 24 7 9 64 100 0 370 739 83 172 26 49.0 0.0 2.0 4.0 0.0 4.200000e+09 2.149000e+11 1138 479400.0 685000.0 2.185000e+09 20179430.0 44694198.0 0 3
5 Armenia 2.1251 64 0 9 3 13 37 20 110 748 38 150 68 0.0 0.0 0.0 0.0 0.0 1.385000e+09 1.041000e+10 11 0.0 47500.0 0.000000e+00 1696085.0 3038217.0 0 3
7 Austria 0.9568 120 15 0 11 32 62 0 56 467 33 0 0 0.0 0.0 0.0 0.0 0.0 3.380000e+09 6.308000e+11 52 14260.0 215000.0 4.300000e+07 4017691.0 8793370.0 0 3
8 Azerbaijan 0.9463 147 17 12 1 29 88 17 570 1451 187 227 162 31.0 0.0 4.0 0.0 1.0 2.805000e+09 1.741000e+10 37 789300.0 180000.0 7.000000e+09 5042346.0 10046516.0 0 3
9 Bahrain 1.8547 109 17 0 2 37 65 22 180 843 33 26 17 39.0 0.0 0.0 0.0 1.0 1.415000e+09 5.215000e+10 4 45000.0 55000.0 1.246000e+08 806505.0 1422659.0 0 3
12 Belgium 1.0499 148 43 0 12 64 29 0 0 984 0 0 0 17.0 0.0 0.0 0.0 2.0 4.921000e+09 1.281000e+12 41 0.0 645000.0 0.000000e+00 4833107.0 11570762.0 0 3
13 Bhutan 10.1681 2 0 0 0 0 2 0 0 27 0 0 0 0.0 0.0 0.0 0.0 0.0 2.512000e+07 2.671000e+09 2 0.0 2000.0 0.000000e+00 176808.0 766397.0 0 3
14 Bolivia 0.9942 69 0 0 14 23 38 0 54 137 0 86 0 0.0 0.0 0.0 0.0 0.0 6.600000e+08 1.281000e+10 855 59330.0 60000.0 2.115000e+08 5075416.0 11306341.0 0 3
15 Bosnia and Herzegovina 3.8586 19 0 0 0 0 19 0 320 332 24 837 143 0.0 0.0 0.0 0.0 0.0 1.650000e+08 1.087000e+10 24 0.0 32500.0 0.000000e+00 2394632.0 3849891.0 0 3
16 Botswana 2.0582 45 10 0 11 8 16 0 55 245 0 30 20 0.0 0.0 0.0 0.0 0.0 4.500000e+08 2.187000e+09 74 0.0 16500.0 0.000000e+00 962617.0 2249104.0 0 3
19 Burkina Faso 1.9009 16 0 3 1 4 8 2 0 350 0 0 0 0.0 0.0 0.0 0.0 0.0 1.300000e+08 3.056000e+09 23 0.0 10500.0 0.000000e+00 7800000.0 19742715.0 0 3
20 Cambodia 2.0557 22 0 0 5 0 17 0 263 340 0 150 570 27.0 0.0 0.0 0.0 0.0 6.040000e+08 1.187000e+10 16 0.0 42500.0 0.000000e+00 8120963.0 16449519.0 0 3
21 Cameroon 1.9902 29 0 0 6 6 15 0 0 222 8 61 20 64.0 0.0 0.0 0.0 0.0 3.470000e+08 9.375000e+09 33 75720.0 32500.0 2.000000e+08 9487157.0 25640965.0 0 3
23 Central African Republic 3.2889 3 0 0 2 0 1 0 4 55 0 20 0 0.0 0.0 0.0 0.0 0.0 2.000000e+07 7.799000e+08 39 0.0 4500.0 0.000000e+00 2348581.0 5745062.0 0 3
24 Chad 1.6383 35 0 6 6 4 17 3 60 372 10 51 10 0.0 0.0 0.0 0.0 0.0 2.000000e+08 1.724000e+09 59 128000.0 100000.0 1.500000e+09 6030834.0 15833116.0 0 3
28 Croatia 1.0183 78 12 0 0 27 47 0 72 604 24 151 105 28.0 0.0 0.0 0.0 0.0 8.000000e+08 4.810000e+10 69 14000.0 82000.0 7.100000e+07 2088265.0 4270480.0 0 3
29 Cuba 1.2208 80 38 0 2 26 14 4 1180 670 100 150 100 12.0 0.0 0.0 0.0 2.0 5.000000e+08 3.006000e+10 133 50000.0 152000.0 1.240000e+08 5980621.0 11116396.0 0 3
30 Czechia 0.5531 95 12 16 8 15 44 15 116 682 86 85 0 0.0 0.0 0.0 0.0 0.0 2.969000e+09 2.052000e+11 128 2000.0 200000.0 1.500000e+07 5011174.0 10686269.0 0 3
31 Democratic Republic of the Congo 1.1389 53 2 4 13 0 34 8 175 100 16 120 57 20.0 0.0 0.0 0.0 0.0 1.000000e+08 4.963000e+09 198 19160.0 10500.0 1.800000e+08 34112410.0 85281024.0 0 3
33 Dominican Republic 2.7504 49 0 8 10 4 28 0 6 20 0 20 0 33.0 0.0 0.0 0.0 0.0 7.600000e+08 2.916000e+10 36 0.0 125000.0 0.000000e+00 4819818.0 10298756.0 0 3
34 Ecuador 1.0062 108 9 0 22 29 50 0 232 413 15 102 26 19.0 0.0 2.0 0.0 2.0 2.500000e+09 3.929000e+10 432 531300.0 282000.0 8.273000e+09 7696551.0 16498502.0 0 3
36 El Salvador 3.1291 51 0 15 2 3 31 0 0 125 0 70 0 4.0 0.0 0.0 0.0 0.0 1.670000e+08 1.551000e+10 68 0.0 45600.0 0.000000e+00 3106010.0 6187271.0 0 3
37 Estonia 2.5893 7 0 0 2 5 4 0 0 181 18 66 0 6.0 0.0 0.0 0.0 0.0 6.850000e+08 1.905000e+10 18 0.0 27500.0 0.000000e+00 596014.0 1244288.0 0 3
38 Ethiopia 0.8581 86 24 0 9 20 33 8 400 114 67 650 183 0.0 0.0 0.0 0.0 0.0 3.500000e+08 2.605000e+10 57 0.0 55000.0 4.280000e+05 41143474.0 108386391.0 0 3
41 Gabon 3.3736 23 6 0 2 0 15 0 0 70 0 16 0 10.0 0.0 0.0 0.0 0.0 8.300000e+07 6.490000e+09 44 198800.0 16500.0 2.000000e+09 842741.0 2119036.0 0 3
42 Georgia 1.6679 66 0 10 2 12 38 9 143 950 69 133 51 9.0 0.0 0.0 0.0 0.0 3.270000e+08 1.699000e+10 22 400.0 18500.0 3.500000e+07 2249744.0 4926087.0 0 3
44 Ghana 2.0554 24 0 0 3 6 13 0 0 150 0 0 0 20.0 0.0 0.0 0.0 0.0 7.100000e+08 2.214000e+10 10 151000.0 65000.0 6.600000e+08 12561805.0 28102471.0 0 3
46 Guatemala 1.8302 33 0 4 8 6 15 0 12 135 0 106 0 26.0 0.0 0.0 0.0 0.0 2.400000e+08 2.292000e+10 291 9666.0 85000.0 8.307000e+07 7063622.0 16581273.0 0 3
47 Honduras 2.0943 46 3 9 11 10 12 0 19 92 0 176 0 59.0 0.0 0.0 0.0 0.0 2.050000e+08 8.625000e+09 103 0.0 60000.0 0.000000e+00 4104696.0 9182766.0 0 3
48 Hungary 0.8215 47 12 0 5 6 24 8 30 944 0 300 0 0.0 0.0 0.0 0.0 0.0 2.080000e+09 1.381000e+11 41 14000.0 145000.0 2.510000e+07 4618081.0 9825704.0 0 3
53 Ireland 1.9481 19 0 0 0 8 8 0 0 124 0 0 0 8.0 0.0 0.0 0.0 0.0 8.700000e+08 2.470000e+12 40 0.0 145000.0 0.000000e+00 2366779.0 5068050.0 0 3
56 Ivory Coast 2.0236 8 0 0 4 0 4 3 15 109 0 7 6 10.0 0.0 0.0 0.0 0.0 5.500000e+08 1.307000e+10 27 54000.0 25600.0 1.000000e+08 11160747.0 26260582.0 0 3
59 Kazakhstan 0.9098 222 76 39 18 18 71 18 650 800 0 300 100 15.0 0.0 0.0 0.0 0.0 4.000000e+09 1.675000e+11 96 1777000.0 245000.0 3.000000e+10 8585003.0 18744548.0 0 3
60 Kenya 1.5287 150 17 0 20 32 79 0 76 479 30 25 0 19.0 0.0 0.0 0.0 0.0 1.210000e+08 2.759000e+10 197 0.0 82000.0 0.000000e+00 19600998.0 48397527.0 0 3
62 Kyrgyzstan 1.9244 5 0 0 0 0 5 2 150 385 30 141 21 0.0 0.0 0.0 0.0 0.0 2.000000e+07 8.164000e+09 28 1000.0 17200.0 4.000000e+07 3029935.0 5849296.0 0 3
63 Laos 3.4433 33 0 0 2 4 27 0 65 30 0 62 0 0.0 0.0 0.0 0.0 0.0 1.850000e+07 1.490000e+10 41 0.0 4500.0 0.000000e+00 3248143.0 7234171.0 0 3
64 Latvia 2.0145 5 0 0 0 12 5 0 0 303 47 20 0 18.0 0.0 0.0 0.0 0.0 7.240000e+08 4.002000e+10 42 0.0 32500.0 0.000000e+00 840595.0 1923559.0 0 3
65 Lebanon 2.5193 70 0 9 0 0 55 0 366 2228 12 374 30 57.0 0.0 0.0 0.0 0.0 2.500000e+09 3.930000e+10 8 0.0 110000.0 0.000000e+00 2135026.0 6100075.0 0 3
66 Liberia 5.5737 0 0 0 0 0 0 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 1.300000e+07 1.036000e+09 29 0.0 4500.0 0.000000e+00 2226923.0 4809768.0 0 3
67 Libya 1.3696 114 17 2 4 62 26 7 250 450 50 100 55 5.0 0.0 0.0 0.0 1.0 3.000000e+09 3.020000e+09 146 897100.0 315000.0 4.836000e+10 3552871.0 6754507.0 0 3
68 Lithuania 1.4752 10 0 0 5 0 5 0 0 420 56 54 0 12.0 0.0 0.0 0.0 0.0 1.107000e+09 3.448000e+10 61 2000.0 72400.0 1.200000e+07 1779322.0 2793284.0 0 3
69 Madagascar 3.0869 6 0 0 0 0 6 0 12 103 0 25 0 8.0 0.0 0.0 0.0 0.0 1.150000e+08 4.089000e+09 83 0.0 18500.0 0.000000e+00 10145026.0 25683610.0 0 3
71 Mali 1.8941 29 9 0 6 5 8 6 80 248 0 50 32 0.0 0.0 0.0 0.0 0.0 7.000000e+07 4.192000e+09 25 0.0 5500.0 0.000000e+00 5991557.0 18429893.0 0 3
72 Mauritania 3.0477 28 0 2 6 9 4 0 35 95 0 224 0 5.0 0.0 0.0 0.0 0.0 5.025000e+07 4.150000e+09 30 4000.0 18500.0 2.000000e+07 1555374.0 3840429.0 0 3
74 Moldova 2.1291 3 0 0 1 0 2 0 0 341 9 52 11 0.0 0.0 0.0 0.0 0.0 3.000000e+07 6.549000e+09 7 0.0 16320.0 0.000000e+00 2014503.0 3437720.0 0 3
75 Mongolia 2.0299 9 0 0 3 0 6 0 470 750 0 300 130 0.0 0.0 0.0 0.0 0.0 1.550000e+08 2.533000e+10 44 20000.0 25000.0 0.000000e+00 1818609.0 3103428.0 0 3
76 Montenegro 2.9941 9 0 0 0 0 9 0 0 26 0 12 18 18.0 0.0 0.0 0.0 2.0 6.500000e+07 2.516000e+09 5 0.0 4860.0 0.000000e+00 146191.0 614249.0 0 3
78 Mozambique 2.3364 16 8 0 1 1 6 2 100 335 0 260 12 8.0 0.0 0.0 0.0 0.0 2.450000e+08 1.091000e+10 98 0.0 22500.0 0.000000e+00 4629744.0 27233789.0 0 3
80 Namibia 3.2817 30 6 0 3 14 7 2 7 410 0 50 4 8.0 0.0 0.0 0.0 0.0 5.050000e+08 7.969000e+09 112 0.0 25000.0 0.000000e+00 582642.0 2533224.0 0 3
81 Nepal 2.9891 16 0 0 3 0 13 0 0 214 0 84 0 0.0 0.0 0.0 0.0 0.0 2.130000e+08 5.849000e+09 47 0.0 20000.0 0.000000e+00 14739923.0 29717587.0 0 3
83 New Zealand 1.3684 48 0 0 7 13 22 0 0 200 0 24 0 11.0 0.0 0.0 0.0 2.0 4.300000e+09 9.162000e+10 123 31480.0 150000.0 5.690000e+07 2115989.0 4545627.0 0 3
84 Nicaragua 2.2747 19 0 0 5 1 14 0 104 265 0 654 163 30.0 0.0 0.0 0.0 0.0 1.400000e+08 1.131000e+10 147 0.0 35000.0 0.000000e+00 3030436.0 6085213.0 0 3
85 Niger 2.0153 16 0 2 5 0 7 1 0 182 0 0 0 0.0 0.0 0.0 0.0 0.0 3.250000e+08 3.728000e+09 30 11000.0 6500.0 1.500000e+08 6754519.0 19866231.0 0 3
86 Nigeria 0.6485 129 8 13 21 47 44 15 253 1789 25 339 36 75.0 0.0 0.0 0.0 0.0 2.155000e+09 4.096000e+10 54 1946000.0 275000.0 3.706000e+10 77108499.0 203452505.0 0 3
88 North Macedonia 3.1808 20 0 0 0 10 14 4 31 251 0 144 24 0.0 0.0 0.0 0.0 0.0 1.081525e+08 8.790000e+09 10 0.0 18500.0 0.000000e+00 1053116.0 2118945.0 0 3
89 Norway 0.5277 150 59 15 4 32 47 0 52 730 80 0 12 62.0 0.0 6.0 0.0 4.0 7.179000e+09 6.423000e+11 95 1618000.0 260000.0 6.611000e+09 2170365.0 5372191.0 0 3
90 Oman 1.2514 131 29 10 9 46 42 0 117 761 39 144 12 16.0 0.0 0.0 0.0 0.0 8.686000e+09 4.627000e+10 132 970400.0 100000.0 5.373000e+09 1764529.0 3494116.0 0 3
92 Panama 3.6537 39 0 0 11 4 23 0 0 65 0 0 0 20.0 0.0 0.0 0.0 0.0 5.000000e+08 9.153000e+10 117 0.0 100000.0 0.000000e+00 1759698.0 3800644.0 0 3
93 Paraguay 2.1898 33 0 0 6 15 11 0 13 63 0 108 0 0.0 0.0 0.0 0.0 0.0 2.500000e+08 1.770000e+10 799 0.0 30000.0 0.000000e+00 3372366.0 7025763.0 0 3
95 Philippines 0.7852 171 0 19 23 24 97 0 7 513 0 286 0 103.0 0.0 0.0 0.0 2.0 3.470000e+09 7.618000e+10 247 15000.0 320000.0 1.385000e+08 51887757.0 105893381.0 0 3
98 Qatar 1.6703 123 24 6 12 35 46 3 92 250 46 12 15 86.0 0.0 0.0 0.0 0.0 6.000000e+09 1.678000e+11 6 1500000.0 190000.0 2.524000e+10 612164.0 2363569.0 0 3
99 Republic of the Congo 2.9509 13 2 0 3 0 8 1 86 225 0 0 6 6.0 0.0 0.0 0.0 0.0 7.150000e+08 4.605000e+09 27 244200.0 185000.0 1.600000e+09 1938754.0 5062021.0 0 3
103 Serbia 0.9479 109 9 17 1 38 44 0 293 904 87 144 88 0.0 0.0 0.0 0.0 0.0 9.070000e+08 2.950000e+10 26 18740.0 75000.0 7.750000e+07 3468274.0 7078110.0 0 3
104 Sierra Leone 4.2063 5 0 0 0 0 5 2 0 13 0 0 0 10.0 0.0 0.0 0.0 0.0 7.550000e+07 1.615000e+09 8 0.0 9500.0 0.000000e+00 1432872.0 6312212.0 0 3
106 Slovakia 0.8466 47 10 0 7 8 21 0 20 661 16 9 25 0.0 0.0 0.0 0.0 0.0 2.121818e+09 7.504000e+10 35 200.0 82000.0 9.000000e+06 2776970.0 5445040.0 0 3
107 Slovenia 1.9496 38 0 0 3 23 16 0 44 269 0 63 0 2.0 0.0 0.0 0.0 0.0 5.810000e+08 4.630000e+10 16 5.0 55000.0 0.000000e+00 1002714.0 2102126.0 0 3
108 Somalia 4.6404 0 0 0 0 0 0 0 10 100 0 30 10 3.0 0.0 0.0 0.0 0.0 6.220000e+07 5.300000e+09 61 0.0 6200.0 0.000000e+00 2702167.0 11259029.0 0 3
111 South Sudan 2.3501 19 0 0 2 0 17 6 110 200 24 0 14 0.0 0.0 0.0 0.0 0.0 8.000000e+07 2.250000e+09 85 150200.0 60000.0 3.750000e+09 5245155.0 10204581.0 0 3
113 Sri Lanka 1.4661 77 0 0 15 6 54 9 202 570 0 209 22 40.0 0.0 0.0 0.0 0.0 2.500000e+09 5.172000e+10 19 0.0 90000.0 0.000000e+00 10927071.0 22576592.0 0 3
114 Sudan 1.3017 190 46 38 22 11 73 43 690 400 10 0 0 18.0 0.0 0.0 0.0 0.0 2.470000e+09 5.605000e+10 74 102300.0 96800.0 5.000000e+09 24061430.0 43120843.0 0 3
115 Suriname 4.6042 3 0 0 0 0 3 0 0 66 0 0 0 3.0 0.0 0.0 0.0 0.0 6.300000e+07 1.700000e+09 55 17000.0 15100.0 8.398000e+07 132740.0 597927.0 0 3
116 Sweden 0.5304 204 71 0 6 69 53 0 126 1036 88 0 0 63.0 0.0 5.0 0.0 0.0 6.326924e+09 9.399000e+11 231 0.0 320000.0 0.000000e+00 4116808.0 10040995.0 0 3
117 Switzerland 0.5259 169 54 0 18 54 42 0 326 1338 224 0 0 0.0 0.0 0.0 0.0 0.0 5.000000e+09 1.664000e+12 63 0.0 260000.0 0.000000e+00 3632250.0 8292809.0 0 3
120 Tajikistan 1.8661 25 0 0 1 4 20 6 253 347 0 90 128 0.0 0.0 0.0 0.0 0.0 1.600000e+09 5.750000e+09 24 180.0 20500.0 1.200000e+07 4095924.0 8604882.0 0 3
121 Tanzania 2.0651 34 14 0 6 8 6 0 156 70 0 12 0 19.0 0.0 0.0 0.0 0.0 2.230000e+08 1.766000e+10 166 0.0 46000.0 0.000000e+00 10258498.0 55451343.0 0 3
123 Tunisia 1.4619 147 12 0 14 29 92 0 181 878 20 165 0 50.0 0.0 0.0 0.0 0.0 5.500000e+08 3.019000e+10 29 49170.0 90500.0 4.250000e+08 5850224.0 11516189.0 0 3
125 Turkmenistan 1.3292 72 24 20 3 0 25 10 712 2000 68 269 116 4.0 0.0 0.0 0.0 0.0 2.000000e+08 5.394000e+08 26 230880.0 150000.0 6.000000e+08 2797493.0 5411012.0 0 3
126 Uganda 1.6176 48 10 0 2 10 26 5 371 1081 6 53 26 0.0 0.0 0.0 0.0 0.0 9.350000e+08 1.080000e+10 47 0.0 17500.0 2.500000e+09 14707350.0 40853749.0 0 3
131 Uruguay 1.8909 50 0 7 9 16 13 0 78 463 0 0 4 20.0 0.0 0.0 0.0 1.0 4.950000e+09 2.837000e+10 133 0.0 55600.0 0.000000e+00 1549878.0 3369299.0 0 3
132 Uzbekistan 0.8086 185 66 20 18 2 79 25 420 1215 137 0 98 0.0 0.0 0.0 0.0 0.0 9.750000e+08 1.690000e+10 53 46070.0 142000.0 5.940000e+08 15912566.0 30023709.0 0 3
135 Yemen 1.2412 169 77 0 8 21 61 14 620 615 20 85 150 30.0 0.0 0.0 0.0 0.0 1.400000e+09 7.068000e+09 57 12260.0 145000.0 3.000000e+09 11266221.0 28667230.0 0 3
136 Zambia 1.6464 108 18 0 11 52 27 0 75 184 0 42 50 0.0 0.0 0.0 0.0 0.0 4.000000e+07 1.166000e+10 88 0.0 21000.0 0.000000e+00 6166905.0 16445079.0 0 3
137 Zimbabwe 1.7577 90 10 0 14 38 28 6 42 300 0 65 22 0.0 0.0 0.0 0.0 0.0 1.000000e+08 9.357000e+09 196 0.0 19500.0 0.000000e+00 5584086.0 14030368.0 0 3

REFERENCES¶

  • https://www.machinelearningplus.com/machine-learning/exploratory-data-analysis-eda/
  • https://www.analyticsvidhya.com/blog/2021/08/how-to-perform-exploratory-data-analysis-a-guide-for-beginners/
  • https://www.javatpoint.com/data-visualization-in-machine-learning
  • https://www.upgrad.com/blog/data-preprocessing-in-machine-learning/
  • https://www.geeksforgeeks.org/clustering-in-machine-learning/
  • https://towardsdatascience.com/all-about-feature-scaling-bcc0ad75cb35
  • https://stats.stackexchange.com/questions/332651/validating-cluster-tendency-using-hopkins-statistic
  • https://medium.com/@mudgalvivek2911/machine-learning-clustering-elbow-method-4e8c2b404a5d
  • https://towardsdatascience.com/understanding-k-means-clustering-in-machine-learning-6a6e67336aa1
  • https://scikit-learn.org/stable/modules/generated/sklearn.metrics.silhouette_score.html
  • https://www.analyticsvidhya.com/blog/2021/05/k-mean-getting-the-optimal-number-of-clusters/